有没有办法在Java中重载Integer取消装箱方法?

时间:2018-02-06 15:51:10

标签: java integer overloading wrapper

我正在尝试确定是否可以修改Java使用的拆箱方法。这样做的目的是:

class IInteger extends Integer {
  @Override
  public int unboxToPrimitive(){
    return ++val;
  }
}

IInteger i = 10;
System.out.print(i); // 11

也就是说,重载方法并让它返回++ val而不是val。

2 个答案:

答案 0 :(得分:8)

没有。这是不可能的,首先Integerfinal并且不能归类。其次,你不能在Java中重载运算符。接下来,您无法为自定义类型进行自动装箱。最后,您实际上并未在println中使用取消装箱(您可以在参考类型上调用print)。

但是,如果我理解您真正想要的内容,您可以使用AtomicIntegerincrementAndGet()(而非get()并根据需要更改其他方法)。

答案 1 :(得分:4)

不,你甚至无法延长java.lang.Integer,因为它是最后一堂课。