AtomicPositiveInteger extends Number { public final int addAndGet(int delta) { if (delta < 0) { throw new IllegalArgumentException("delta " + delta + " < 0"); } return indexUpdater.addAndGet(this, delta) & Integer.MAX_VALUE; } AtomicPositiveInteger();  AtomicPositiveInteger(int initialValue); final int getAndIncrement(); final int getAndDecrement(); final int incrementAndGet(); final int decrementAndGet(); final int get(); final void set(int newValue); final int getAndSet(int newValue); final int getAndAdd(int delta); final int addAndGet(int delta); final boolean compareAndSet(int expect, int update); final boolean weakCompareAndSet(int expect, int update); @Override byte byteValue(); @Override short shortValue(); @Override int intValue(); @Override long longValue(); @Override float floatValue(); @Override double doubleValue(); @Override String toString(); @Override int hashCode(); @Override boolean equals(Object obj);  }
@Test public void testAddAndGet() throws Exception { int get = i1.addAndGet(3); assertEquals(3, get); assertEquals(3, i1.get()); get = i2.addAndGet(3); assertEquals(127 + 3, get); assertEquals(127 + 3, i2.get()); get = i3.addAndGet(3); assertEquals(2, get); assertEquals(2, i3.get()); }