Compare two objects in Java with possible null values

前端 未结 12 1508
忘掉有多难
忘掉有多难 2020-11-27 11:58

I want to compare two strings for equality when either or both can be null.

So, I can\'t simply call .equals() as it can contain null<

12条回答
  •  孤城傲影
    2020-11-27 12:42

    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);
    }
    

提交回复
热议问题