我正在处理一些Java类,想要重写.equals(Object)
方法来测试我的类的整数变量。但是我很惊讶地发现,它报错说我不能使用原始类型int,而我确定在Java文档中说编译器会自动将原始类型转换为包装类型用于方法。
public boolean equals(Object o)
{
if (!(o instanceof myClass))
return false;
myClass mc = (myClass)o;
return (this.myInt.equals(mc.getMyInt()));
}
Integer
时,它会自动装箱,但当它期望一个Object
(你可能知道是一个Integer
)时,它不会。 - Richard Tinglethis.myInt.equals(...)
中使用它,其中myInt
是一个原始类型。这里无法使用自动装箱。 - Jim GarrisongetMyInt()
返回int
,那么this.myInt() == mc.getMyInt()
在这里是可以的。 - jdphenix