有没有更短的方法来检查字符串/对象是否为空?
String str = someMethodThatReturnsStringOrNull(someOthreObject);
if(str == null) { System.out.println("Empty"); }
比如 JS 风格:
if(str) { System.out.println("Empty"); }
最佳答案
没有。
Java 要求条件语句的表达式必须是 boolean
类型,或者可以自动转换为 boolean
的类型;唯一可以这样转换的类型是 Boolean
,通过拆箱。
除非你用一个毫无意义的短名称定义一个方法,否则你不能用更少的字符来做到这一点:
if (n(str)) { // "n()" requires 3 characters
if (str == null) { // " == null" requires 8 characters
// (remove the whitespace if you want to do it in 6...)
但是这 5 个额外的字符节省了大量的认知负担,想知道“n
到底是什么?!”,更不用说定义和/或导入该方法的额外字符了。另一方面,任何编写过任何 Java(或者可能是其他语言)的人都能立即理解 == null
。
str == null
准确传达了您要测试的内容:引用为 null,而不是空,或者可转换为值为零的数字,或其他内容。
== null
还具有有益的编译时属性,例如,它将阻止您使用原始操作数,例如 int i = 0; if (i == null) {}
是编译时错误,因为 i
是原始的,因此不能为 null
,而 if ( n(i)) {}
将被允许(前提是形式参数类型是 Object
,这是您希望它成为最大重用的类型),因为 i
将被装箱。
Java 是一种相当冗长的语言;有很多事情比这更冗长。就个人而言,我什至不会注意到写 == null
,这是我肌肉内存中的习惯。
别担心,学会喜欢语法。
关于java - 检查对象是否为空的更短方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53216132/