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中是否有一

我用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我曾想过更新答案,但这种方法已经在另一种方法中出现了