How to simplify a null-safe compareTo() implementation?

前端 未结 17 2107
醉酒成梦
醉酒成梦 2020-11-28 18:03

I\'m implementing compareTo() method for a simple class such as this (to be able to use Collections.sort() and other goodies offered by the Java pl

17条回答
  •  心在旅途
    2020-11-28 18:56

    Using Java 8:

    private static Comparator nullSafeStringComparator = Comparator
            .nullsFirst(String::compareToIgnoreCase); 
    
    private static Comparator metadataComparator = Comparator
            .comparing(Metadata::getName, nullSafeStringComparator)
            .thenComparing(Metadata::getValue, nullSafeStringComparator);
    
    public int compareTo(Metadata that) {
        return metadataComparator.compare(this, that);
    }
    

提交回复
热议问题