我刚读过Effective Java,该equals()方法的第五个原则是所有对象必须不相等null.本书接着说,程序员编写的一些类使用明确的测试来防范这种情况null:
public boolean equals(Object o){
if (o == null)
return false;
...
}
Run Code Online (Sandbox Code Playgroud)
根据Effective Java,上面的非空测试是不必要的.但是,我的问题是,为什么那么多程序员会测试这种非无效性要求呢?
您可以通过instanceof测试来做到这一点:
public boolean equals(Object o){
if (!(o instanceof MyObject))
return false;
...
}
Run Code Online (Sandbox Code Playgroud)
null 不是任何事情的实例,所以这是有效的.
| 归档时间: |
|
| 查看次数: |
301 次 |
| 最近记录: |