Java 如果为空,是否有方法自动初始化变量
我用Java编写了以下代码:Java 如果为空,是否有方法自动初始化变量,java,variables,null,initialization,Java,Variables,Null,Initialization,我用Java编写了以下代码: String foo = request.getParameter("bar"); if (foo == null) { foo = ""; } 以这种方式检查了多个值。在其他语言中,我可能会这样做: String foo = request.getParameter("bar") || ""; Optional.ofNullable(request.getParameter("bar")).orElse("") 我真的只是想知道Java中是否有一
String foo = request.getParameter("bar");
if (foo == null) {
foo = "";
}
以这种方式检查了多个值。在其他语言中,我可能会这样做:
String foo = request.getParameter("bar") || "";
Optional.ofNullable(request.getParameter("bar")).orElse("")
我真的只是想知道Java中是否有一个等价物
String foo = request.getParameter("bar") !=null ? request.getParameter("bar") :"";
或者,如果您想调用两次getParameter()
,您可以编写
String foo = request.getParameter("bar");
foo = foo!=null? foo : "";
这就是所谓的。为了不打电话,我建议使用谷歌的
获取参数(“bar”)两次
ApacheCommonsLang具有方法
ObjectUtils::defaultIfNull
。您可以使用s轻松地自己实现它ᴜʀᴇsʜᴀᴛᴛᴀ's的方法:
public static <T> T defaultIfNull(T object, T defaultValue) {
return object == null ? defaultValue : object;
}
公共静态T defaultIfNull(T对象,T defaultValue){
返回对象==null?默认值:对象;
}
如果您使用java 8,您可能可以使用以下内容:
String foo = request.getParameter("bar") || "";
Optional.ofNullable(request.getParameter("bar")).orElse("")
如果不使用Java8,则可以选择使用。它提供了类似的API。例如
Optional.fromNullable(request.getParameter("bar")).or("")
这两种方法都允许指定一个函数来创建备用值
如果你只是想走老路,创建一种方法,如:
static String emptyIfNull(String value) {
if (value == null) return "";
else return value;
}
emptyIfNull(request.getParameter("bar"))
但是这里你调用了两次
getParameter
方法,以防第一次调用时它不是空的。啊,是的,我可以使用三元运算符,这是一个很好的观点,我没有考虑它。谢谢。我在路上编辑的时候,你正在评论:我喜欢这个想法和语法,但是我需要导入一些库来使用它吗?或者。。我将去查看它,而不是在这里问:如果您使用的是番石榴,那么您最好使用对象。firstNonNull(request,getParameter(“bar”),“”)
@LouisWasserman我曾想过更新答案,但这种方法已经在另一种方法中出现了