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