有没有办法在 null 时自动初始化变量
Is there a way to automatically initialize a variable if null
我在 Java 中有此代码:
String foo = request.getParameter("bar");
if (foo == null) {
foo = "";
}
以这种方式检查了多个值。在其他语言中,我可能可以做这样的事情:
String foo = request.getParameter("bar") || "";
我真的只是想知道 Java 中是否有等价物。
String foo = request.getParameter("bar") !=null ? request.getParameter("bar") :"";
或者如果你想getParameter()
调用两次,你可以写
String foo = request.getParameter("bar");
foo = foo!=null? foo : "";
我建议使用 MoreObjects.firstNonNull from google Guava 以免调用
request.getParameter("bar") 两次。
String foo = MoreObjects.firstNonNull(request.getParameter("bar"), "");
Apache Commons Lang 有方法 ObjectUtils::defaultIfNull
。您可以使用 sᴜʀᴇsʜ ᴀᴛᴛᴀ 的方法自行轻松实现它:
public static <T> T defaultIfNull(T object, T defaultValue) {
return object == null ? defaultValue : object;
}
如果你使用 java 8,你可能会这样:
Optional.ofNullable(request.getParameter("bar")).orElse("")
如果您不使用 java 8,您可以选择使用 Optional from Google Guava。其中提供类似 API。例如
Optional.fromNullable(request.getParameter("bar")).or("")
这两个都允许指定一个函数来创建备用值。
如果你只是想走老路,创建一个像这样的方法:
static String emptyIfNull(String value) {
if (value == null) return "";
else return value;
}
emptyIfNull(request.getParameter("bar"))
我在 Java 中有此代码:
String foo = request.getParameter("bar");
if (foo == null) {
foo = "";
}
以这种方式检查了多个值。在其他语言中,我可能可以做这样的事情:
String foo = request.getParameter("bar") || "";
我真的只是想知道 Java 中是否有等价物。
String foo = request.getParameter("bar") !=null ? request.getParameter("bar") :"";
或者如果你想getParameter()
调用两次,你可以写
String foo = request.getParameter("bar");
foo = foo!=null? foo : "";
我建议使用 MoreObjects.firstNonNull from google Guava 以免调用 request.getParameter("bar") 两次。
String foo = MoreObjects.firstNonNull(request.getParameter("bar"), "");
Apache Commons Lang 有方法 ObjectUtils::defaultIfNull
。您可以使用 sᴜʀᴇsʜ ᴀᴛᴛᴀ 的方法自行轻松实现它:
public static <T> T defaultIfNull(T object, T defaultValue) {
return object == null ? defaultValue : object;
}
如果你使用 java 8,你可能会这样:
Optional.ofNullable(request.getParameter("bar")).orElse("")
如果您不使用 java 8,您可以选择使用 Optional from Google Guava。其中提供类似 API。例如
Optional.fromNullable(request.getParameter("bar")).or("")
这两个都允许指定一个函数来创建备用值。
如果你只是想走老路,创建一个像这样的方法:
static String emptyIfNull(String value) {
if (value == null) return "";
else return value;
}
emptyIfNull(request.getParameter("bar"))