[英]How does the increment operator work on an Integer instance if Java doesn't support operator overloading?
我读到Java不支持运算符重载。 然后让我想知道如何在Integer类的实例上使用增量运算符。
Integer number = new Integer(10);
System.out.println(++number);
上面的代码可以正常编译,没有错误。 但是,假设我创建了自己的类,并且只使用一个成员变量(整数),并尝试使用增量运算符。 这会给我一个编译器错误。 为什么是这样?
这是在Integer
对象上调用增量运算符时执行的操作序列:
Integer
包装器对象被取消装箱到int
原语(使用intValue()
方法)。 Integer
包装器对象。 因此,实际上,运算符实际上应用于int
原语,而不应用于对象。 仅针对原始包装器类的对象定义了此行为,并且没有办法使您自己的类以类似的方式表现。
有关自动装箱和拆箱的更多信息,请参见此处 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.