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