在将对象转换为字符串之前测试 null 的任何简单方法
我总是写
Object o;
if (o!=null)
String s = o.toString();
是否有简单的方法来处理这种情况?
I always write
Object o;
if (o!=null)
String s = o.toString();
If there simple way to handle this case?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
String
类中的静态valueOf
方法将进行 null 检查,如果对象为null
则返回"null"
>:The static
valueOf
method in theString
class will do the null check and return"null"
if the object isnull
:尝试
Objects.toString(Object o, String nullDefault)
示例:
Try
Objects.toString(Object o, String nullDefault)
Example:
来自 commons-lang 的
ObjectUtils.toString(object)
。那里的代码实际上只有一行:只有一个注释 - 仅使用
toString()
进行调试和日志记录。不要依赖toString()
的格式。ObjectUtils.toString(object)
from commons-lang. The code there is actually one line:Just one note - use
toString()
only for debug and logging. Don't rely on the format oftoString()
.简单且 0 运行时异常:)
Simple and 0 runtime exception :)
更新了 Bozho 和 59 年 1 月的答案以供参考:
来自 commons-lang 的
ObjectUtils.toString(object)
。那里的代码实际上只有一行:然而,自 3.2 版 (commons/lang3) 以来,Apache Commons 中的这一方法现已被弃用。他们的目标是删除 Jdk7 中可用的所有方法。该方法已被 Java 7 中的
java.util.Objects.toString(Object)
取代,并且可能会在未来的版本中删除。经过一番讨论后,他们尚未删除它(目前在 3.4 中),并且它仍然可以作为已弃用的方法使用。但请注意,所述 java 7+ 方法将为 null 引用返回“null”,而此方法返回空字符串。为了保留行为使用
Updated answer of Bozho and January-59 for reference:
ObjectUtils.toString(object)
from commons-lang. The code there is actually one line:However this method in Apache Commons is now deprecated since release 3.2 (commons/lang3). Their goal here was to remove all the methods that are available in Jdk7. The method has been replaced by
java.util.Objects.toString(Object)
in Java 7 and will probably be removed in future releases. After some discussion they did not remove it yet (currently in 3.4) and it is still available as a deprecated method.Note however that said java 7+ method will return "null" for null references, while this method returns and empty String. To preserve behavior use
如果 o 为 null,则
String.valueOf(o)
返回字符串“null”。另一种可能是 String s = o == null? “默认”:o.toString()
String.valueOf(o)
returns the string "null" if o is null.Another one could be
String s = o == null? "default" : o.toString()
您可以通过以下方式使用 java 8 可选:
You can use java 8 Optional in the following way:
根据您想要的
null
值,但您可以这样做这是 println 和字符串附加等的默认行为。
Depending on what you want it to on a
null
value but you can just do thisThis is the default behaviour for println and string append etc.
当 o 不为 NULL 时,您似乎想要获取一个字符串。
但我很困惑,如果像你这样编码,你无法访问变量 s (你知道 s 在 if 语句的范围内)。
It looks like you want get a String when o is not a NULL.
But I'm confusing that if coding like yours you can't access variable s (you know s in scope of if statement).