增加整数的int值?

如何在Java中增加Integer的值? 我知道我可以用intValue得到值,我可以用新的整数(int i)来设置它。

playerID.intValue()++; 

似乎没有工作。

注意:PlayerID是一个已经被创build的整数:

 Integer playerID = new Integer(1); 

Integer对象是不可变的,所以你不能修改它们创build的值。 您将需要创build一个新的Integer并replace现有的Integer

 playerID = new Integer(playerID.intValue() + 1); 

正如Grodriguez所说, Integer对象是不可变的。 这里的问题是,你正在尝试增加玩家ID的int值,而不是ID本身。 在Java 5+中,你可以只写playerID++

作为一个方面说明,永远不要调用Integer的构造函数。 利用自动装箱,直接将int s赋值给Integer ,如Integer foo = 5 。 这将透明地使用Integer.valueOf(int) ,这比构造函数更好,因为它并不总是需要创build一个新的对象。

整数对象是不可变的。 你不能改变对象本身所拥有的整数的值,但你可以创build一个新的Integer对象来保存结果:

 Integer start = new Integer(5); Integer end = start + 5; // end == 10; 

对于Java 7,增量运算符“++”在整数上工作。 以下是一个testing的例子

  Integer i = new Integer( 12 ); System.out.println(i); //12 i = i++; System.out.println(i); //13 

也许这也是值得的:有一个名为AtomicInteger的Java类(请参阅https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/atomic/AtomicInteger.html )。 这个类有一些有用的方法,比如addAndGet(int delta)或者incrementAndGet() (以及它们的对应方法),它们允许你增加/减less同一个实例的值。 虽然这个类被devise用于并发的上下文中,但是在其他场景中它也是非常有用的,并且可能适合您的需要。

你可以使用IntHolder作为Integer的可变替代。 但是值得吗?

也许你可以尝试:

 final AtomicInteger i = new AtomicInteger(0); i.set(1); i.get();