我读到Java不支持运算符重载。然后它让我想知道如何在Integer类的实例上使用increment运算符。
Integer number = new Integer(10);
System.out.println(++number);
以上代码编译正常,没有错误。但是,假设我创建了自己的类,只有一个成员变量(整数),并尝试使用increment运算符。它会给我一个编译器错误。这是为什么?
答案 0 :(得分:5)
这是在Integer
对象上调用增量运算符时执行的操作序列:
Integer
包装器对象已取消装箱到int
原语(使用intValue()
方法)。Integer
包装器对象。因此,实际上,运算符实际上应用于int
原语,而不是对象。此行为仅针对原始包装类的对象定义,并且无法使您自己的类以类似的方式运行。
有关自动装箱和拆箱的详细信息,请参阅here。