Java 取得字串時,若希望當該字串為null時返回空字串,不是null返回原本的字串的作法如下。
在Java 7以前通常用if else、三元運算子(ternary operator),或是專案總是有人會已經寫個StringUtil之類的工具方法來轉。
User user = findUserById(100);
String phone = "";
if (user.getPhone != null) {
phone = user.getPhone;
}
String address = user.getAddress == null ? "" : user.getAddress(); // ternary operator
Java 7開始可以改用Objects.toString((Object o, String nullDefault)
來轉null為空字串。
User user = findUserById(100);
String phone = Objects.toString(user.getPhone(), "");
String address = Objects.toString(user.getAddress(), "");
Objects.toString((Object o, String nullDefault)
原始碼其實也是用三元運算子處理。
public final class Objects {
...
public static String toString(Object o, String nullDefault) {
return (o != null) ? o.toString() : nullDefault;
}
...
}
沒有留言:
張貼留言