这个问题更像是谜题,而不是真正的问题,
这种方法出了什么问题:
public boolean areEqual(Long a, long b)
{
return a==b;
}
答案 0 :(得分:5)
它没有任何问题,除了NullPointerException
如果a
是null
(自动拆箱会抛出NPE),它可以抛出{{1}}。
答案 1 :(得分:2)
这取决于......
例如,如果您将null作为第一个参数传递(您可以),那么您将获得NullPointerException
,因为将在对象上调用toLongValue
。
答案 2 :(得分:0)
由于自动装箱/拆箱
此方法没有错(嗯,只有当a
为空时,它才会抛出NPE)......
但如果错误意味着不好的做法,那么你没有使用好的缩进而且不遵循java编码约定(第一行的括号)
答案 3 :(得分:0)
长a应该是指向长值的指针
长b应该是一个长值
所以如果你测试相等,你测试指针(值)与长值
答案 4 :(得分:0)
您的值可以为null(长型)而b不能为(长型) 因此,当a == null时,a == b将导致nullpointer。