在将对象转换为字符串之前测试null的任何简单方法

时间:2011-04-02 08:51:30

标签: java null

我总是写

Object o;
if (o!=null)
String s = o.toString();

如果有简单的方法来处理这种情况?

9 个答案:

答案 0 :(得分:84)

如果对象为valueOfString类中的静态"null"方法将执行空检查并返回null

String stringRepresentation = String.valueOf(o);

答案 1 :(得分:60)

尝试Objects.toString(Object o, String nullDefault)

示例:

import java.util.Objects;

Object o1 = null;
Object o2 = "aString";
String s;

s = Objects.toString(o1, "isNull"); // returns "isNull"
s = Objects.toString(o2, "isNull"); // returns "aString"

答案 2 :(得分:47)

来自commons-lang的

ObjectUtils.toString(object)。那里的代码实际上有一行:

return obj == null ? "" : obj.toString();

只需一条注释 - 仅将toString()用于调试和日志记录。不要依赖toString()

的格式

答案 3 :(得分:6)

更新了Bozho和1月59日的答案以供参考:

来自commons-lang的

this.Invoke(new Action(() => { <your code> } ));。那里的代码实际上有一行:

ObjectUtils.toString(object)

然而,自从版本3.2(commons / lang3)以来,Apache Commons中的这个方法现在已被弃用。他们的目标是删除Jdk7中可用的所有方法。该方法已被 Java 7 中的return obj == null ? "" : obj.toString(); 取代,并且可能会在将来的版本中删除。经过一些讨论后,他们还没有删除它(目前在3.4中),它仍然可以作为弃用的方法使用。

但请注意,所述java 7+方法将返回&#34; null&#34;对于null引用,此方法返回并清空String。要保留行为,请使用

java.util.Objects.toString(Object)

答案 4 :(得分:5)

import java.util.Objects;
Objects.toString(object, "")

简单和0运行时异常:)

答案 5 :(得分:4)

如果o为null,则

String.valueOf(o)返回字符串“null”。

另一个可能是String s = o == null? "default" : o.toString()

答案 6 :(得分:3)

您可以通过以下方式使用java 8 Optional:

String s = Optional.ofNullable(o).map(Object::toString).orElse("null");

答案 7 :(得分:2)

取决于您对null值的要求,但您可以执行此操作

Object o =
String s = ""+o;

这是println和string append等的默认行为。

答案 8 :(得分:2)

当o不是NULL时,看起来你想得到一个String。 但是我很困惑,如果像你这样的编码你不能访问变量s(你知道在if语句的范围内)。