我总是写
Object o;
if (o!=null)
String s = o.toString();
Run Code Online (Sandbox Code Playgroud)
如果有简单的方法来处理这种情况?
mmc*_*omb 87
类中的静态valueOf方法String将执行null检查,"null"如果对象是null:
String stringRepresentation = String.valueOf(o);
Run Code Online (Sandbox Code Playgroud)
Jan*_* 59 63
尝试 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"
Run Code Online (Sandbox Code Playgroud)
Boz*_*zho 48
ObjectUtils.toString(object)来自commons-lang.那里的代码实际上是一行:
return obj == null ? "" : obj.toString();
Run Code Online (Sandbox Code Playgroud)
只需一条注释 - toString()仅用于调试和日志记录.不要依赖于格式toString().
更新了Bozho和1月59日的答案以供参考:
ObjectUtils.toString(object)来自commons-lang.那里的代码实际上是一行:
return obj == null ? "" : obj.toString();
Run Code Online (Sandbox Code Playgroud)
但是,自从版本3.2(commons/lang3)以来,Apache Commons中的这种方法现已被弃用.他们的目标是删除Jdk7中可用的所有方法.该方法已java.util.Objects.toString(Object)在Java 7中取代,可能会在将来的版本中删除.经过一些讨论后,他们还没有删除它(目前在3.4中),它仍然可以作为弃用方法使用.
但请注意,所述java 7+方法将为null引用返回"null",而此方法返回并清空String.保持行为使用
java.util.Objects.toString(myObject, "")
Run Code Online (Sandbox Code Playgroud)
String.valueOf(o)如果 o 为 null,则返回字符串“null”。
另一种可能是String s = o == null? "default" : o.toString()
import java.util.Objects;
Objects.toString(object, "")
Run Code Online (Sandbox Code Playgroud)
简单和0运行时异常:)
您可以通过以下方式使用 java 8 Optional:
String s = Optional.ofNullable(o).map(Object::toString).orElse("null");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
58887 次 |
| 最近记录: |