4

有没有像ruby一样在java中消除空值的好方法有:

x = null || "string"

我想做这样的事情。

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

防止传递空值。

4

4 回答 4

12

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

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

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

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

当然,如果您发现自己经常使用它们,这两者都可以静态导入。

于 2012-09-12T13:43:48.133 回答
6

不,Java 中没有 null 安全语法。您应该手动进行。或者,您可以创建或使用诸如 commons-lang 之类的实用程序:

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

这样你就可以得到值,或者“”,如果它是null

于 2012-09-12T13:43:06.207 回答
1

并不真地。您可以将 readline() 的结果分配给临时变量,然后有条件地分配它:

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

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

于 2012-09-12T13:44:29.317 回答
0

readLine()也可以返回 null。当您需要使用String.

于 2012-09-12T13:43:36.677 回答