[英]Any simple way to test null before convert an object to string
我总是写
Object o;
if (o!=null)
String s = o.toString();
如果有简单的方法来处理这种情况?
String
类中的static 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"
来自commons-lang的ObjectUtils.toString(object)
。 那里的代码实际上是一行:
return obj == null ? "" : obj.toString();
只需注意一点 - 使用toString()
仅用于调试和日志记录。 不要依赖toString()
的格式。
更新了Bozho和1月59日的答案以供参考:
来自commons-lang的ObjectUtils.toString(object)
。 那里的代码实际上是一行:
return obj == null ? "" : obj.toString();
但是,自从版本3.2(commons / lang3)以来,Apache Commons中的这种方法现已被弃用 。 他们的目标是删除Jdk7中可用的所有方法。 该方法已被Java 7 java.util.Objects.toString(Object)
取代,并且可能在将来的版本中被删除。 经过一些讨论后,他们还没有删除它(目前在3.4中),它仍然可以作为弃用方法使用。
但请注意,所述java 7+方法将为null引用返回“null”,而此方法返回并清空String。 保持行为使用
java.util.Objects.toString(myObject, "")
import java.util.Objects;
Objects.toString(object, "")
简单和0运行时异常:)
您可以通过以下方式使用java 8 Optional:
String s = Optional.ofNullable(o).map(Object::toString).orElse("null");
如果o为null,则String.valueOf(o)
返回字符串“null”。
另一个可能是String s = o == null? "default" : o.toString()
String s = o == null? "default" : o.toString()
根据您想要的null
值,但您可以这样做
Object o =
String s = ""+o;
这是println和string append等的默认行为。
当o不是NULL时,看起来你想得到一个String。 但是我很困惑,如果像你这样的编码你不能访问变量s(你知道在if语句的范围内)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.