有什么办法可以重载Java中的Integer拆箱方法吗?

Is there any way to overload the Integer unboxing method in Java?

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

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

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

即重载该方法并使它 return ++val 而不是 val.

不,您甚至不能扩展 java.lang.Integer,因为它是最终的 class。

没有。这是不可能的,首先 Integerfinal 并且不能被子分类。其次,您不能在 Java 中重载运算符。接下来,您不能对自定义类型进行自动装箱。最后,您实际上并没有在 println 中使用拆箱(您可以在引用类型上调用 print)。

但是,如果我明白你真正想要什么,你可以使用 AtomicIntegerincrementAndGet() (instead of get() 并根据需要更改其他方法)。 =18=]