0
我必須按可能爲空的不同字符串屬性(""
)或甚至null
排序集合。這兩個值都是允許的,必須同等對待。設計比較器訪問可能爲空或空的字符串字段的最佳方法
我通過使用一種方法解決了這個問題,該方法檢查每個字符串的null
並在找到null
時返回一個空字符串。
到目前爲止,我比較看起來basicly這樣
public class MyComparator implements Comparator<MyObject> {
@Override
public int compare(MyObject o1, MyObject o2) {
// ... some logical stuff like e.g.
return rein(o1.getSomeValue()).compareTo(rein(o2.getSomeValue());
}
private String rein(String str) {
return str == null ? "" : str;
}
}
我不知道這樣的設計被認爲是好的,如果有反對的理由呢?如果不好,我還能做些什麼來滿足我的要求?所有這些(大多數情況下不需要)函數調用對我來說都很難看,因爲我們正在談論大約1/1000的情況。所以我想知道是否有更優雅的解決方案?
感謝您的意見。只是這些案例非常罕見,所以我認爲可能會有更好的解決方案。也許冒NPE的風險,並抓住它來執行不同的邏輯,但是爲這個過程濫用例外對我來說似乎也是醜陋的。 – stg 2014-10-31 16:35:12