我希望有一个指向Integer类型的指针,没有自定义类,其元素是一个整数。
我想要的效果:
Byte x = 5; // Byte is just an example and WILL NOT work.
Byte y = x;
y--;
System.out.println(x + "," + y);
我想要打印:
4,4
我认为Byte
,Integer
或Double
可能会这样做,因为它们是一类具有内部变量的类,它是一种原始类型,但它们不会t保持对它们所分配的对象的引用。
答案 0 :(得分:3)
您不能使用原始包装类型,因为它们是不可变的。您可以使用AtomicInteger
执行此操作。像,
AtomicInteger x = new AtomicInteger(5);
AtomicInteger y = x;
System.out.println(y.decrementAndGet() + "," + x.get());
输出(根据要求)
4,4
或,您可以使用int[]
之类的
int[] x = { 5 };
int[] y = x;
System.out.println(--x[0] + "," + y[0]);
获得相同的输出。
答案 1 :(得分:1)
我不能完全同意Elliott关于AtomicInteger
课程的答案。不是出于这些目的而已经开发出来。
我建议你
(1)考虑commons-lang
课程(如MutableInt
,MutableDouble
):
MutableInt wrapper = new MutableInt(value);
(2)将基本类型包装在具有相应get
/ set
-ers的类包装器中:
class IntWrapper { private int value; }
(3)制作一个基元数组:
int[] wrapper = new int[] { value };