Java中的条件赋值

时间:2012-09-12 13:41:33

标签: java variable-assignment

有没有一种好方法可以在java中取消null值,例如ruby:

x = null || "string"

我想做这样的事情。

String line = reader.readLine() || "";

防止传递空值。

4 个答案:

答案 0 :(得分:12)

您可以使用Guava及其 Objects.firstNonNull 方法(从Guava 21.0中删除):

String line = Objects.firstNonNull(reader.readLine(), "");

或针对此特定情况,Strings.nullToEmpty

String line = Strings.nullToEmpty(reader.readLine());

当然,如果你发现自己经常使用它们,那么这些都可以静态导入。

答案 1 :(得分:6)

不,Java中没有空安全语法。你应该手动完成。或者,您可以创建或使用commons-lang这样的实用程序:

String line = StringUtils.trimToEmpty(reader.readLine());

通过这种方式,您可以获得值,如果是null

,则为“”

答案 2 :(得分:1)

不是真的。您可以将readline()的结果赋值给temp变量,然后有条件地赋值:

String t = reader.readline();
String line = t == null ? "default" : t;

但这是你能做的最好的事情。

答案 3 :(得分:0)

readLine()也可以返回null。当您需要使用String时,您应该检查是否为空。