我正在尝试确定是否可以修改Java使用的拆箱方法。这样做的目的是:
class IInteger extends Integer {
@Override
public int unboxToPrimitive(){
return ++val;
}
}
IInteger i = 10;
System.out.print(i); // 11
也就是说,重载方法并让它返回++ val而不是val。
答案 0 :(得分:8)
没有。这是不可能的,首先Integer
是final
并且不能归类。其次,你不能在Java中重载运算符。接下来,您无法为自定义类型进行自动装箱。最后,您实际上并未在println
中使用取消装箱(您可以在参考类型上调用print
)。
但是,如果我理解您真正想要的内容,您可以使用AtomicInteger
和incrementAndGet()
(而非get()
并根据需要更改其他方法)。
答案 1 :(得分:4)
不,你甚至无法延长java.lang.Integer
,因为它是最后一堂课。