我曾经写过Java代码的测试语句,如“anObject!= null”,但是我发现有些人反过来做了这样的“null!= anObject”。那么,他们之间的区别是什么?哪一个是Java中更好的方法?java中“anObject!= null”和“null!= anObject”有什么区别?
回答
从编译代码的角度来看没有区别。
然而,从偏执狂程序员的角度来看,它可以防止你做出可怕的任务错误。
例如如果您输入错误:
null = myObject
由于无法指定常量,因此会出现编译器错误。
但是,如果输错:
myObject = null
编译器不会抱怨。你可以发布代码,将null赋值给你的对象,而不是测试null。
他们的推理是,如果你不小心忘记了!
,那么你有一个任务而不是比较,这是不可能发生的第二种方式。
anObject = null
将null指定为anObject
,而null = anObject
将产生编译器错误。
这并不坏,没有理由避免它......实际上这样做有好处。 – Doorknob
@门把手 - 也许不坏,但我不会说这是惯例。我个人觉得很难阅读和评估,但这是偏好。 –
归结为个人喜好。如果你用这种方式编码,最终没有人会受到伤害。而且你可以保护你自己免于做一些偶然的事情,这会在你的编译代码中造成严重后果。另一方面,它不会像正确的方式那样自然地阅读。 –
这在一定程度上关系到尤达条件:
"the force".equals(myString);
避免了空指针的myString为空。
- 1. Assert.NotNull(object anObject)与Assert.IsNotNull(object anObject)
- 2. (null)和<null>有什么区别?
- 3. != null和!== null之间有什么区别?
- 4. java - 条件中(obj!= null)和!(obj == null)有什么区别?
- 5. (anObject *)在语句前做了什么?
- 6. 分配null和不分配null有什么区别?
- 7. undefined和null之间有什么区别?
- 8. null和System.DBNull.Value有什么区别?
- 9. TAggregateField.IsNull和(TAggregateField.Value = Null)有什么区别
- 10. 在Scala中`null == last`和`null eq last`有什么区别?
- 11. Scala中a.ne(null)和!= null有什么区别?
- 12. 在MySql中有什么区别!= NULL和IS NOT NULL
- 13. NULL和NULL中的空值有什么区别
- 14. Java中的showMessageDialog中的frame和null有什么区别?
- 15. object x = null和object x =(object)null有什么区别?
- 16. 这些(bCondition == NULL)和(NULL == bCondition)之间有什么区别?
- 17. “foo is null”和“foo == null”有什么区别
- 18. DEFAULT NULL和CHECKBOX NULL mysql有什么区别?
- 19. a == null和a === null之间有什么区别?
- 20. “x is null”和“x == null”有什么区别?
- 21. null,0和nothing什么区别?
- 22. PHP中NULL和null之间的区别
- 23. NaN和Inf以及R中的NULL和NA有什么区别?
- 24. 什么是Object.Equals(obj,null)和obj == null之间的区别
- 25. if(NULL == pointer)vs if(pointer == NULL)有什么区别?
- 26. assert object!= null和Assert.assertNotNull(object)之间有什么区别?
- 27. <foo></foo>和JAXB中的null有什么区别?
- 28. 在Excel VBA中,“IsNull()”和“var = Null”之间有什么区别?
- 29. 在C#中处理和设置引用null有什么区别?
- 30. 在WPF中,RenderTransform的null和Identity有什么区别?
没有区别。 – gustavohenke
没有什么不同,没有更好的。使用==进行反向操作可避免意外分配。 –
随机琐事:这些是“尤达条件”:P – Doorknob