網頁

2021/4/27

Java 字串為null返回空字串,否則返回原字串 String null return empty string else return original string

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


沒有留言:

張貼留言