我爲標題感到抱歉,但我無法找到一個用一句話來描述問題的好方法。總之,我有很多的Java代碼以下這一模式你如何模擬一個默認返回值的空安全運算符?
if (obj != null && obj.getPropertyX() != null) {
return obj.getPropertyX();
}
return defaultProperty;
可以改寫爲
return obj != null && obj.getPropertyX() != null ? obj.getPropertyX() : defaultProperty;
它仍然是醜陋,我不知道是否有在谷歌番石榴或其他一些API庫來幫助清理這些代碼。具體來說,我正在尋找類似
return someAPI(obj, "getPropertyX", defaultProperty);
我可以使用反射實現此方法,但我不知道這是做的正確方法。謝謝。
其他語言有一個 「安全導航操作」,在那裏你可以說'OBJ .getPropertyX()',而不是'OBJ == NULL? null:obj.getPropertyX()'。例如,Groovy和C#。但是Java選擇了可選類。 http://docs.groovy-lang.org/latest/html/documentation/#_safe_navigation_operator –