Java-指向整数类型的指针

Java-指向整数类型的指针,java,pointers,Java,Pointers,我希望有一个指向整数类型的指针,而不需要创建一个包含整数元素的自定义类 我想要的效果是: 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可能能够做到这一点,因为它们是一种具有内部变量的类,内部变量是基本类型,但它们不保留对分配给它们的对象的

我希望有一个指向整数类型的指针,而不需要创建一个包含整数元素的自定义类

我想要的效果是:

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可能能够做到这一点,因为它们是一种具有内部变量的类,内部变量是基本类型,但它们不保留对分配给它们的对象的引用

不能使用基本包装类型,因为它们是不可变的。你可以用一个电脑来做这件事。大概

AtomicInteger x = new AtomicInteger(5);
AtomicInteger y = x;
System.out.println(y.decrementAndGet() + "," + x.get());
按要求的产出

4,4
或者,您可以使用int[]这样的

对于相同的输出。

我不能完全同意Elliott关于AtomicInteger类的回答。它不是为了这些目的而开发的

我也建议你

1.考虑到以下课程:

2使用相应的get/set-er在类包装器中包装基元类型:

3制作基元数组:

int[] wrapper = new int[] { value };

所有建议的类型都是不可变的。试试AtomicInteger.FYI:Java没有指针。在Java中,它们被称为引用。@ElliottFrisch我想这就是我要找的。我查看了文档,发现了很多非常奇怪的方法。减量和获取例如。。。真奇怪。我怎么用这个?。。。你为什么要这样做?“你想解决什么问题?”发条工缪斯说,“我有一个整数数组列表。”。其中一个整数非常重要,我需要跟踪它,以防它降到零。整数将在ArrayList中,但随时可能从ArrayList中删除、移动等,因此我不能依靠使用ArrayList的索引来跟踪它。ArrayList中的值将通过另一个函数一直在更改,因此我需要某种方法来引用它,无论它位于何处。因此,我需要一些存储整数的对象类型,允许我对其进行引用。奇怪的是,当我尝试键入MutableInt时,Intellij不会自动知道它所在的库,而几乎任何标准Java类都会知道。这是外部图书馆吗?我在线看到它在Apache的Java.lang中显示,但您可能会认为如果它在我的JDK中,Intellij就会找到它。不管怎样,你能详细说明为什么开发AtomicInteger的目的吗?我对它读得越多,就越不明白它为什么存在。Commons-Lang是一个Apache库。因此,您需要下载它并将其包含在类路径中。它是一个相当常见的第三方库,但仍然是一个第三方库,因此不是标准JDK的一部分。基于此,有些人会对这个答案表示不满。@HateFind,1您应该从下载一个.jar文件,并将其包含到您的类路径中。恕我直言,将外部库用于像这样简单的事情似乎是非常极端的,不是吗?@HateFind通过引用将值操作到基元类型在Java中并不简单。基本类型在Java中不是对象。虽然包装器很好,但它们针对常见用例进行了优化。此外,由于您使用的是IntelliJ,因此可以将其添加到pom中。
MutableInt wrapper = new MutableInt(value);
class IntWrapper { private int value; }
int[] wrapper = new int[] { value };