检查空值时,我使用:
String str;
if(str == null){
//...
}
Run Code Online (Sandbox Code Playgroud)
但我也见过这个:
if(null == str){
//...
}
Run Code Online (Sandbox Code Playgroud)
使用一个优于另一个是否有任何优势?或者只是为了提高可读性?
请考虑以下两行代码
if (test ! = null)
Run Code Online (Sandbox Code Playgroud)
和
if (null != test)
Run Code Online (Sandbox Code Playgroud)
表现明智,上述两个陈述是否有任何区别?我见过很多人使用后者,当被问及时他们说这是一个没有坚实理由的最佳实践.
大多数开发人员都习惯在左侧写入null检查null.like,
if(null == someVariable)
Run Code Online (Sandbox Code Playgroud)
这有帮助吗?据我说,这影响了代码的可读性.
有些人推荐方法2用于null-check,但我不确定它背后的原因是什么以及为什么应该首选它?
Date test1 = null; // test1 can be any object like String instead of Date
if (test1 != null) {
System.out.println("Test");
}
Run Code Online (Sandbox Code Playgroud)
方法2: -
Date test1 = null;
if (null != test1) {
System.out.println("Test");
}
Run Code Online (Sandbox Code Playgroud) 我见过我的老年人的各种代码,他们在很多地方使用过它.它有什么影响?为什么他们不能包括anything != null.对于下面的事情也是如此
"true".equals(x).
为什么会这样?
问这个问题我觉得很傻,但我已经在两个独立的公司代码库上看到了这段代码,我开始认为有一些我不知道的古老 Java 知识。
所以,我们得到了这样的代码:
/* Lot of corporate stuff */
if (ClassicUtilsClass.isNotNull(variable)) {
/* Variable handling shenanigans. */
}
Run Code Online (Sandbox Code Playgroud)
转到我们的 ClassicUtilsClass 揭示了该函数的实现:
/* Lot of useful static functions*/
public static isNotNull(Object o) {
return o!=null;
}
public static isNull(Object o) {
return o==null;
}
Run Code Online (Sandbox Code Playgroud)
我读了它,挠挠头,环顾互联网,询问同事和朋友,然后嘲笑该功能的无用。然后我换了工作,一位同事向我展示了或多或少相同的代码。
在同一个代码库中,我们有经典的“isNullOrEmpty”,它执行标准的“return object==null || object.size() == 0;”,所以我可以理解有一个函数来包装空比较......加上别的东西,但我没有看到为空检查创建一个全新的函数的意义。
我在这里失去了什么?
可能重复:
Java中的空检查
我只是想知道它们之间有什么区别
if (null == something) {...}
Run Code Online (Sandbox Code Playgroud)
和
if (something == null) {...}
Run Code Online (Sandbox Code Playgroud)
假设在两种情况下something都是同一个对象.据推测,除了代码的可读性之外,应该是非.
关于空检查的编码标准我有疑问.我想知道它们之间的区别
if(a!=null)
Run Code Online (Sandbox Code Playgroud)
和
if(null!=a)
Run Code Online (Sandbox Code Playgroud)
哪一个更好,哪一个使用,为什么?
我有一个对象S,其中包含调用的方法getstaus().现在来自后端的状态值也可以null,所以我通过以下方式检查:
if (S.getStatus().equals(null))
{}
Run Code Online (Sandbox Code Playgroud)
请让我知道这是正确的方法,还是没有比这更好的方法.