有什么办法可以重载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。
没有。这是不可能的,首先 Integer
是 final
并且不能被子分类。其次,您不能在 Java 中重载运算符。接下来,您不能对自定义类型进行自动装箱。最后,您实际上并没有在 println
中使用拆箱(您可以在引用类型上调用 print
)。
但是,如果我明白你真正想要什么,你可以使用 AtomicInteger
和 incrementAndGet()
(instead of get()
并根据需要更改其他方法)。 =18=]
我正在尝试确定 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。
没有。这是不可能的,首先 Integer
是 final
并且不能被子分类。其次,您不能在 Java 中重载运算符。接下来,您不能对自定义类型进行自动装箱。最后,您实际上并没有在 println
中使用拆箱(您可以在引用类型上调用 print
)。
但是,如果我明白你真正想要什么,你可以使用 AtomicInteger
和 incrementAndGet()
(instead of get()
并根据需要更改其他方法)。 =18=]