我总是写
Object o;
if (o!=null)
String s = o.toString();
如果有简单的方法来处理这种情况?
答案 0 :(得分:84)
如果对象为valueOf
,String
类中的静态"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)
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)
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语句的范围内)。