Java中的条件赋权

Pab*_*mer 4 java variable-assignment

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

x = null || "string"
Run Code Online (Sandbox Code Playgroud)

我想做这样的事情.

String line = reader.readLine() || "";
Run Code Online (Sandbox Code Playgroud)

防止传递空值.

Jon*_*eet 12

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

String line = Objects.firstNonNull(reader.readLine(), "");
Run Code Online (Sandbox Code Playgroud)

或者对于这个特定情况,Strings.nullToEmpty:

String line = Strings.nullToEmpty(reader.readLine());
Run Code Online (Sandbox Code Playgroud)

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


Boz*_*zho 6

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

String line = StringUtils.trimToEmpty(reader.readLine());
Run Code Online (Sandbox Code Playgroud)

这样你就可以获得价值,或"如果是的话" null