有一个bean,有一个Integer类型的field。需求是当这个field为1时在页面上打勾。
判断方法:
bean != null && bean.getAntiUninstall() == 1;
结果jsp老是显示错误,仔细一查发现bean.getAntiUninstall() 返回了null,而null无法和1直接比较。
就我这个需求,得用
Objects.equals(bean.getAntiUninstall(), 1)
如果是比较大小,得用compareTo,用大于小于符号也是不行的!
看看Objects.equals的源码:
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
里面会调用equals方法,而Integer又重写的equals方法:
public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}
所以两个equals相结合,才能正确判断! |