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

Fel*_*lix 3 java integer overloading wrapper

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

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

IInteger i = 10;
System.out.print(i); // 11
Run Code Online (Sandbox Code Playgroud)

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

Ell*_*sch 8

不可以.这是不可能的,首先Integerfinal也不能分类.其次,你不能在Java中重载运算符.接下来,您无法为自定义类型进行自动装箱.最后,您实际上并未使用拆箱println(您可以调用print引用类型).

但是,如果我理解你真正想要的东西,你可以使用AtomicIntegerincrementAndGet()(代替get()并根据需要改变你的其他方法).