本文介紹了Java-檢查非Null/Empty否則分配缺省值的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在嘗試簡化以下代碼。
代碼應執行的基本步驟如下:
-
為字符串分配默認值
運行方法
如果該方法返回空/空字符串,則將該字符串保留為默認值
如果該方法返回有效的字符串,則將該字符串設置為此結果
一個簡單的例子是:
String temp = System.getProperty("XYZ");
String result = "default";
if(temp != null && !temp.isEmpty()){
result = temp;
}
我使用三元運算符進行了另一次嘗試:
String temp;
String result = isNotNullOrEmpty(temp = System.getProperty("XYZ")) ? temp : "default";
isNotNullOrEmpty()方法
private static boolean isNotNullOrEmpty(String str){
return (str != null && !str.isEmpty());
}
是否可以以內聯方式完成所有這些操作?我知道我可以做這樣的事情:
String result = isNotNullOrEmpty(System.getProperty("XYZ")) ? System.getProperty("XYZ") : "default";
但我兩次調用相同的方法。我想做一些這樣的事情(這不起作用):
String result = isNotNullOrEmpty(String temp = System.getProperty("XYZ")) ? temp : "default";
我希望在同一行中初始化‘temp’字符串。這個是可能的嗎?或者我應該做些什么?
感謝您的建議。
蒂姆
推薦答案
我知道這個問題確實很古老,但使用泛型可以添加更通用的方法,使其適用于所有類型。
public static <T> T getValueOrDefault(T value, T defaultValue) {
return value == null ? defaultValue : value;
}
這篇關于Java-檢查非Null/Empty否則分配缺省值的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,