在将对象转换为string之前testingnull的任何简单方法
我总是写
Object o; if (o!=null) String s = o.toString();
如果有简单的方法来处理这种情况?
ObjectUtils.toString(object)
来自commons-lang。 那里的代码实际上是一行:
return obj == null ? "" : obj.toString();
只需要注意一点 – 只能使用toString()
来进行debugging和日志logging。 不要依赖toString()
的格式。
String
类中的静态valueOf
方法将执行null检查,如果对象为null
,则返回"null"
:
String stringRepresentation = String.valueOf(o);
尝试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"
Bozho和1月-59更新的答案供参考:
ObjectUtils.toString(object)
来自commons-lang。 那里的代码实际上是一行:
return obj == null ? "" : obj.toString();
但是,Apache Commons中的这种方法现在已经从版本3.2(commons / lang3)开始弃用了 。 他们的目标是去除所有在Jdk7中可用的方法。 该方法已被Java 7 java.util.Objects.toString(Object)
所取代,并可能在未来版本中被删除。 经过一番讨论,他们还没有删除它(目前在3.4),它仍然可以作为一个不推荐的方法。
但是请注意,所说的java 7+方法将为空引用返回“null”,而此方法返回并为空String。 保留行为使用
java.util.Objects.toString(myObject, "")
如果o为null,则String.valueOf(o)
返回string“null”。
另一个可能是String s = o == null? "default" : o.toString()
String s = o == null? "default" : o.toString()
您可以按照以下方式使用java 8 Optional:
String s = Optional.ofNullable(o).map(Object::toString).orElse("null");
它看起来像你想获得一个string,当不是一个NULL。 但我很困惑,如果像你的编码,你不能访问variables(你知道在if语句的范围)。
根据你想要它在一个null
值,但你可以做到这一点
Object o = String s = ""+o;
这是println和string追加等的默认行为。