This is an automated email from the ASF dual-hosted git repository. ggregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-lang.git
The following commit(s) were added to refs/heads/master by this push: new 80b944a79 org.apache.commons.lang3.mutable.Mutable now extends Supplier 80b944a79 is described below commit 80b944a792986398ed3ee28cc3814226fe12227a Author: Gary D. Gregory <garydgreg...@gmail.com> AuthorDate: Fri Jun 13 20:25:47 2025 -0400 org.apache.commons.lang3.mutable.Mutable now extends Supplier --- src/changes/changes.xml | 1 + .../org/apache/commons/lang3/mutable/Mutable.java | 34 ++++++++++++++-------- .../commons/lang3/mutable/MutableBoolean.java | 5 +++- .../apache/commons/lang3/mutable/MutableByte.java | 5 +++- .../commons/lang3/mutable/MutableDouble.java | 5 +++- .../apache/commons/lang3/mutable/MutableFloat.java | 5 +++- .../apache/commons/lang3/mutable/MutableInt.java | 5 +++- .../apache/commons/lang3/mutable/MutableLong.java | 5 +++- .../commons/lang3/mutable/MutableObject.java | 3 ++ .../apache/commons/lang3/mutable/MutableShort.java | 5 +++- .../org/apache/commons/lang3/ObjectUtilsTest.java | 12 ++++---- .../org/apache/commons/lang3/StringUtilsTest.java | 14 ++++----- .../commons/lang3/mutable/MutableBooleanTest.java | 1 + .../commons/lang3/mutable/MutableByteTest.java | 4 +++ .../commons/lang3/mutable/MutableDoubleTest.java | 4 +++ .../commons/lang3/mutable/MutableFloatTest.java | 4 +++ .../commons/lang3/mutable/MutableIntTest.java | 4 +++ .../commons/lang3/mutable/MutableLongTest.java | 4 +++ .../commons/lang3/mutable/MutableObjectTest.java | 11 ++++--- .../commons/lang3/mutable/MutableShortTest.java | 4 +++ 20 files changed, 99 insertions(+), 36 deletions(-) diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 5e5caed7a..762653c37 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -126,6 +126,7 @@ The <action> type attribute can be add,update,fix,remove. <action type="add" dev="ggregory" due-to="Gary Gregory">Add SystemProperties.JAVA_SECURITY_KERBEROS_REAL.</action> <action type="add" dev="ggregory" due-to="kommalapatiraviteja">Add ArrayFill.fill(boolean[], boolean) #1386.</action> <action type="add" dev="ggregory" due-to="Pankraz76, Gary Gregory">Add ObjectUtils.getIfNull(Object, Object) and deprecate defaultIfNull(Object, Object).</action> + <action type="add" dev="ggregory" due-to="Gary Gregory">org.apache.commons.lang3.mutable.Mutable now extends Supplier.</action> <!-- UPDATE --> <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">Bump org.apache.commons:commons-parent from 73 to 84 #1267, #1277, #1283, #1288, #1302, #1377.</action> <action type="update" dev="ggregory" due-to="Gary Gregory, Dependabot">[site] Bump org.codehaus.mojo:taglist-maven-plugin from 3.1.0 to 3.2.1 #1300.</action> diff --git a/src/main/java/org/apache/commons/lang3/mutable/Mutable.java b/src/main/java/org/apache/commons/lang3/mutable/Mutable.java index 6497955b5..42e1d7044 100644 --- a/src/main/java/org/apache/commons/lang3/mutable/Mutable.java +++ b/src/main/java/org/apache/commons/lang3/mutable/Mutable.java @@ -17,39 +17,49 @@ package org.apache.commons.lang3.mutable; +import java.util.function.Supplier; + /** * Provides mutable access to a value. * <p> * {@link Mutable} is used as a generic interface to the implementations in this package. * </p> * <p> - * A typical use case would be to enable a primitive or string to be passed to a method and allow that method to - * effectively change the value of the primitive/string. Another use case is to store a frequently changing primitive in - * a collection (for example a total in a map) without needing to create new Integer/Long wrapper objects. + * A typical use case would be to enable a primitive or string to be passed to a method and allow that method to effectively change the value of the + * primitive/object. Another use case is to store a frequently changing primitive in a collection (for example a total in a map) without needing to create new + * Integer/Long wrapper objects. * </p> * - * @param <T> the type to set and get + * @param <T> the type to wrap. * @since 2.1 */ -public interface Mutable<T> { +public interface Mutable<T> extends Supplier<T> { + + /** + * Gets the value of this mutable. + * + * @return the stored value. + * @since 3.18.0 + */ + default T get() { + return getValue(); + } /** * Gets the value of this mutable. * * @return the stored value + * @deprecated Use {@link #get()}. */ + @Deprecated T getValue(); /** * Sets the value of this mutable. * - * @param value - * the value to store - * @throws NullPointerException - * if the object is null and null is invalid - * @throws ClassCastException - * if the type is invalid + * @param value the value to store + * @throws NullPointerException if the object is null and null is invalid. + * @throws ClassCastException if the type is invalid. */ void setValue(T value); - } diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableBoolean.java b/src/main/java/org/apache/commons/lang3/mutable/MutableBoolean.java index cb0a62322..3fae44399 100644 --- a/src/main/java/org/apache/commons/lang3/mutable/MutableBoolean.java +++ b/src/main/java/org/apache/commons/lang3/mutable/MutableBoolean.java @@ -112,8 +112,11 @@ public boolean equals(final Object obj) { /** * Gets the value as a Boolean instance. * - * @return the value as a Boolean, never null + * @return the value as a Boolean, never null. + * @deprecated Use {@link #get()}. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public Boolean getValue() { return Boolean.valueOf(this.value); diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableByte.java b/src/main/java/org/apache/commons/lang3/mutable/MutableByte.java index 25c85f33c..4b5e1bcb9 100644 --- a/src/main/java/org/apache/commons/lang3/mutable/MutableByte.java +++ b/src/main/java/org/apache/commons/lang3/mutable/MutableByte.java @@ -260,8 +260,11 @@ public byte getAndIncrement() { /** * Gets the value as a Byte instance. * - * @return the value as a Byte, never null + * @return the value as a Byte, never null. + * @deprecated Use {@link #get()}. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public Byte getValue() { return Byte.valueOf(this.value); diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableDouble.java b/src/main/java/org/apache/commons/lang3/mutable/MutableDouble.java index 713e1f9c2..09765560f 100644 --- a/src/main/java/org/apache/commons/lang3/mutable/MutableDouble.java +++ b/src/main/java/org/apache/commons/lang3/mutable/MutableDouble.java @@ -266,8 +266,11 @@ public double getAndIncrement() { /** * Gets the value as a Double instance. * - * @return the value as a Double, never null + * @return the value as a Double, never null. + * @deprecated Use {@link #get()}. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public Double getValue() { return Double.valueOf(this.value); diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableFloat.java b/src/main/java/org/apache/commons/lang3/mutable/MutableFloat.java index 29069e49f..723cb86c9 100644 --- a/src/main/java/org/apache/commons/lang3/mutable/MutableFloat.java +++ b/src/main/java/org/apache/commons/lang3/mutable/MutableFloat.java @@ -268,8 +268,11 @@ public float getAndIncrement() { /** * Gets the value as a Float instance. * - * @return the value as a Float, never null + * @return the value as a Float, never null. + * @deprecated Use {@link #get()}. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public Float getValue() { return Float.valueOf(this.value); diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableInt.java b/src/main/java/org/apache/commons/lang3/mutable/MutableInt.java index bd416c8fe..70fa10b10 100644 --- a/src/main/java/org/apache/commons/lang3/mutable/MutableInt.java +++ b/src/main/java/org/apache/commons/lang3/mutable/MutableInt.java @@ -255,8 +255,11 @@ public int getAndIncrement() { /** * Gets the value as a Integer instance. * - * @return the value as a Integer, never null + * @return the value as a Integer, never null. + * @deprecated Use {@link #get()}. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public Integer getValue() { return Integer.valueOf(this.value); diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableLong.java b/src/main/java/org/apache/commons/lang3/mutable/MutableLong.java index 018369348..bc158c6fc 100644 --- a/src/main/java/org/apache/commons/lang3/mutable/MutableLong.java +++ b/src/main/java/org/apache/commons/lang3/mutable/MutableLong.java @@ -255,8 +255,11 @@ public long getAndIncrement() { /** * Gets the value as a Long instance. * - * @return the value as a Long, never null + * @return the value as a Long, never null. + * @deprecated Use {@link #get()}. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public Long getValue() { return Long.valueOf(this.value); diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableObject.java b/src/main/java/org/apache/commons/lang3/mutable/MutableObject.java index b65d1b319..5289393b2 100644 --- a/src/main/java/org/apache/commons/lang3/mutable/MutableObject.java +++ b/src/main/java/org/apache/commons/lang3/mutable/MutableObject.java @@ -87,7 +87,10 @@ public boolean equals(final Object obj) { * Gets the value. * * @return the value, may be null. + * @deprecated Use {@link #get()}. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public T getValue() { return this.value; diff --git a/src/main/java/org/apache/commons/lang3/mutable/MutableShort.java b/src/main/java/org/apache/commons/lang3/mutable/MutableShort.java index 7e838dded..cb5a8e080 100644 --- a/src/main/java/org/apache/commons/lang3/mutable/MutableShort.java +++ b/src/main/java/org/apache/commons/lang3/mutable/MutableShort.java @@ -249,8 +249,11 @@ public short getAndIncrement() { /** * Gets the value as a Short instance. * - * @return the value as a Short, never null + * @return the value as a Short, never null. + * @deprecated Use {@link #get()}. */ + @SuppressWarnings("deprecation") + @Deprecated @Override public Short getValue() { return Short.valueOf(this.value); diff --git a/src/test/java/org/apache/commons/lang3/ObjectUtilsTest.java b/src/test/java/org/apache/commons/lang3/ObjectUtilsTest.java index 6e1017853..4dac6e084 100644 --- a/src/test/java/org/apache/commons/lang3/ObjectUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/ObjectUtilsTest.java @@ -251,7 +251,7 @@ void testArray() { void testCloneOfCloneable() { final CloneableString string = new CloneableString("apache"); final CloneableString stringClone = ObjectUtils.clone(string); - assertEquals("apache", stringClone.getValue()); + assertEquals("apache", stringClone.get()); } /** @@ -439,9 +439,9 @@ void testDefaultIfNull() { return dflt; }; ObjectUtils.getIfNull(o, countingDefaultSupplier); - assertEquals(0, callsCounter.getValue()); + assertEquals(0, callsCounter.get()); ObjectUtils.getIfNull(null, countingDefaultSupplier); - assertEquals(1, callsCounter.getValue()); + assertEquals(1, callsCounter.get()); } @Test @@ -527,9 +527,9 @@ void testGetIfNullSupplier() { return defaultObject; }; ObjectUtils.getIfNull(o, countingDefaultSupplier); - assertEquals(0, callsCounter.getValue()); + assertEquals(0, callsCounter.get()); ObjectUtils.getIfNull(null, countingDefaultSupplier); - assertEquals(1, callsCounter.getValue()); + assertEquals(1, callsCounter.get()); } @Test @@ -833,7 +833,7 @@ void testNull() { void testPossibleCloneOfCloneable() { final CloneableString string = new CloneableString("apache"); final CloneableString stringClone = ObjectUtils.cloneIfPossible(string); - assertEquals("apache", stringClone.getValue()); + assertEquals("apache", stringClone.get()); } /** diff --git a/src/test/java/org/apache/commons/lang3/StringUtilsTest.java b/src/test/java/org/apache/commons/lang3/StringUtilsTest.java index 5b8faa18a..bff9d842d 100644 --- a/src/test/java/org/apache/commons/lang3/StringUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/StringUtilsTest.java @@ -740,13 +740,13 @@ void testGetIfBlank_StringStringSupplier() { return "NULL"; }; StringUtils.getIfBlank("abc", countingDefaultSupplier); - assertEquals(0, numberOfCalls.getValue()); + assertEquals(0, numberOfCalls.get()); StringUtils.getIfBlank("", countingDefaultSupplier); - assertEquals(1, numberOfCalls.getValue()); + assertEquals(1, numberOfCalls.get()); StringUtils.getIfBlank(" ", countingDefaultSupplier); - assertEquals(2, numberOfCalls.getValue()); + assertEquals(2, numberOfCalls.get()); StringUtils.getIfBlank(null, countingDefaultSupplier); - assertEquals(3, numberOfCalls.getValue()); + assertEquals(3, numberOfCalls.get()); } @Test @@ -766,11 +766,11 @@ void testGetIfEmpty_StringStringSupplier() { return "NULL"; }; StringUtils.getIfEmpty("abc", countingDefaultSupplier); - assertEquals(0, numberOfCalls.getValue()); + assertEquals(0, numberOfCalls.get()); StringUtils.getIfEmpty("", countingDefaultSupplier); - assertEquals(1, numberOfCalls.getValue()); + assertEquals(1, numberOfCalls.get()); StringUtils.getIfEmpty(null, countingDefaultSupplier); - assertEquals(2, numberOfCalls.getValue()); + assertEquals(2, numberOfCalls.get()); } @Test diff --git a/src/test/java/org/apache/commons/lang3/mutable/MutableBooleanTest.java b/src/test/java/org/apache/commons/lang3/mutable/MutableBooleanTest.java index 929d9d102..9764b751f 100644 --- a/src/test/java/org/apache/commons/lang3/mutable/MutableBooleanTest.java +++ b/src/test/java/org/apache/commons/lang3/mutable/MutableBooleanTest.java @@ -88,6 +88,7 @@ void testEquals() { @Test void testGetSet() { assertFalse(new MutableBoolean().booleanValue()); + assertEquals(Boolean.FALSE, new MutableBoolean().get()); assertEquals(Boolean.FALSE, new MutableBoolean().getValue()); final MutableBoolean mutBool = new MutableBoolean(false); diff --git a/src/test/java/org/apache/commons/lang3/mutable/MutableByteTest.java b/src/test/java/org/apache/commons/lang3/mutable/MutableByteTest.java index 4ae1818e4..71fdb0881 100644 --- a/src/test/java/org/apache/commons/lang3/mutable/MutableByteTest.java +++ b/src/test/java/org/apache/commons/lang3/mutable/MutableByteTest.java @@ -176,18 +176,22 @@ void testGetAndIncrement() { void testGetSet() { final MutableByte mutNum = new MutableByte((byte) 0); assertEquals((byte) 0, new MutableByte().byteValue()); + assertEquals(Byte.valueOf((byte) 0), new MutableByte().get()); assertEquals(Byte.valueOf((byte) 0), new MutableByte().getValue()); mutNum.setValue((byte) 1); assertEquals((byte) 1, mutNum.byteValue()); + assertEquals(Byte.valueOf((byte) 1), mutNum.get()); assertEquals(Byte.valueOf((byte) 1), mutNum.getValue()); mutNum.setValue(Byte.valueOf((byte) 2)); assertEquals((byte) 2, mutNum.byteValue()); + assertEquals(Byte.valueOf((byte) 2), mutNum.get()); assertEquals(Byte.valueOf((byte) 2), mutNum.getValue()); mutNum.setValue(new MutableByte((byte) 3)); assertEquals((byte) 3, mutNum.byteValue()); + assertEquals(Byte.valueOf((byte) 3), mutNum.get()); assertEquals(Byte.valueOf((byte) 3), mutNum.getValue()); } diff --git a/src/test/java/org/apache/commons/lang3/mutable/MutableDoubleTest.java b/src/test/java/org/apache/commons/lang3/mutable/MutableDoubleTest.java index dbb9c1da6..468541240 100644 --- a/src/test/java/org/apache/commons/lang3/mutable/MutableDoubleTest.java +++ b/src/test/java/org/apache/commons/lang3/mutable/MutableDoubleTest.java @@ -177,18 +177,22 @@ void testGetAndIncrement() { void testGetSet() { final MutableDouble mutNum = new MutableDouble(0d); assertEquals(0d, new MutableDouble().doubleValue(), 0.0001d); + assertEquals(Double.valueOf(0), new MutableDouble().get()); assertEquals(Double.valueOf(0), new MutableDouble().getValue()); mutNum.setValue(1); assertEquals(1d, mutNum.doubleValue(), 0.0001d); + assertEquals(Double.valueOf(1d), mutNum.get()); assertEquals(Double.valueOf(1d), mutNum.getValue()); mutNum.setValue(Double.valueOf(2d)); assertEquals(2d, mutNum.doubleValue(), 0.0001d); + assertEquals(Double.valueOf(2d), mutNum.get()); assertEquals(Double.valueOf(2d), mutNum.getValue()); mutNum.setValue(new MutableDouble(3d)); assertEquals(3d, mutNum.doubleValue(), 0.0001d); + assertEquals(Double.valueOf(3d), mutNum.get()); assertEquals(Double.valueOf(3d), mutNum.getValue()); } diff --git a/src/test/java/org/apache/commons/lang3/mutable/MutableFloatTest.java b/src/test/java/org/apache/commons/lang3/mutable/MutableFloatTest.java index db7b3df93..d0322a3f9 100644 --- a/src/test/java/org/apache/commons/lang3/mutable/MutableFloatTest.java +++ b/src/test/java/org/apache/commons/lang3/mutable/MutableFloatTest.java @@ -177,18 +177,22 @@ void testGetAndIncrement() { void testGetSet() { final MutableFloat mutNum = new MutableFloat(0f); assertEquals(0f, new MutableFloat().floatValue(), 0.0001f); + assertEquals(Float.valueOf(0), new MutableFloat().get()); assertEquals(Float.valueOf(0), new MutableFloat().getValue()); mutNum.setValue(1); assertEquals(1f, mutNum.floatValue(), 0.0001f); + assertEquals(Float.valueOf(1f), mutNum.get()); assertEquals(Float.valueOf(1f), mutNum.getValue()); mutNum.setValue(Float.valueOf(2f)); assertEquals(2f, mutNum.floatValue(), 0.0001f); + assertEquals(Float.valueOf(2f), mutNum.get()); assertEquals(Float.valueOf(2f), mutNum.getValue()); mutNum.setValue(new MutableFloat(3f)); assertEquals(3f, mutNum.floatValue(), 0.0001f); + assertEquals(Float.valueOf(3f), mutNum.get()); assertEquals(Float.valueOf(3f), mutNum.getValue()); } diff --git a/src/test/java/org/apache/commons/lang3/mutable/MutableIntTest.java b/src/test/java/org/apache/commons/lang3/mutable/MutableIntTest.java index fca50f97f..770fa6a5b 100644 --- a/src/test/java/org/apache/commons/lang3/mutable/MutableIntTest.java +++ b/src/test/java/org/apache/commons/lang3/mutable/MutableIntTest.java @@ -185,18 +185,22 @@ void testGetAndIncrement() { void testGetSet() { final MutableInt mutNum = new MutableInt(0); assertEquals(0, new MutableInt().intValue()); + assertEquals(Integer.valueOf(0), new MutableInt().get()); assertEquals(Integer.valueOf(0), new MutableInt().getValue()); mutNum.setValue(1); assertEquals(1, mutNum.intValue()); + assertEquals(Integer.valueOf(1), mutNum.get()); assertEquals(Integer.valueOf(1), mutNum.getValue()); mutNum.setValue(Integer.valueOf(2)); assertEquals(2, mutNum.intValue()); + assertEquals(Integer.valueOf(2), mutNum.get()); assertEquals(Integer.valueOf(2), mutNum.getValue()); mutNum.setValue(new MutableLong(3)); assertEquals(3, mutNum.intValue()); + assertEquals(Integer.valueOf(3), mutNum.get()); assertEquals(Integer.valueOf(3), mutNum.getValue()); } diff --git a/src/test/java/org/apache/commons/lang3/mutable/MutableLongTest.java b/src/test/java/org/apache/commons/lang3/mutable/MutableLongTest.java index bc6c17534..f126c65f2 100644 --- a/src/test/java/org/apache/commons/lang3/mutable/MutableLongTest.java +++ b/src/test/java/org/apache/commons/lang3/mutable/MutableLongTest.java @@ -178,18 +178,22 @@ void testGetAndIncrement() { void testGetSet() { final MutableLong mutNum = new MutableLong(0); assertEquals(0, new MutableLong().longValue()); + assertEquals(Long.valueOf(0), new MutableLong().get()); assertEquals(Long.valueOf(0), new MutableLong().getValue()); mutNum.setValue(1); assertEquals(1, mutNum.longValue()); + assertEquals(Long.valueOf(1), mutNum.get()); assertEquals(Long.valueOf(1), mutNum.getValue()); mutNum.setValue(Long.valueOf(2)); assertEquals(2, mutNum.longValue()); + assertEquals(Long.valueOf(2), mutNum.get()); assertEquals(Long.valueOf(2), mutNum.getValue()); mutNum.setValue(new MutableLong(3)); assertEquals(3, mutNum.longValue()); + assertEquals(Long.valueOf(3), mutNum.get()); assertEquals(Long.valueOf(3), mutNum.getValue()); } diff --git a/src/test/java/org/apache/commons/lang3/mutable/MutableObjectTest.java b/src/test/java/org/apache/commons/lang3/mutable/MutableObjectTest.java index 20132fe8a..634ea8680 100644 --- a/src/test/java/org/apache/commons/lang3/mutable/MutableObjectTest.java +++ b/src/test/java/org/apache/commons/lang3/mutable/MutableObjectTest.java @@ -33,12 +33,12 @@ class MutableObjectTest extends AbstractLangTest { @Test void testConstructors() { - assertNull(new MutableObject<String>().getValue()); + assertNull(new MutableObject<String>().get()); final Integer i = Integer.valueOf(6); - assertSame(i, new MutableObject<>(i).getValue()); - assertSame("HI", new MutableObject<>("HI").getValue()); - assertSame(null, new MutableObject<>(null).getValue()); + assertSame(i, new MutableObject<>(i).get()); + assertSame("HI", new MutableObject<>("HI").get()); + assertSame(null, new MutableObject<>(null).get()); } @Test @@ -69,12 +69,15 @@ void testEquals() { @Test void testGetSet() { final MutableObject<String> mutNum = new MutableObject<>(); + assertNull(new MutableObject<>().get()); assertNull(new MutableObject<>().getValue()); mutNum.setValue("HELLO"); + assertSame("HELLO", mutNum.get()); assertSame("HELLO", mutNum.getValue()); mutNum.setValue(null); + assertSame(null, mutNum.get()); assertSame(null, mutNum.getValue()); } diff --git a/src/test/java/org/apache/commons/lang3/mutable/MutableShortTest.java b/src/test/java/org/apache/commons/lang3/mutable/MutableShortTest.java index 44c94a05e..9e379119a 100644 --- a/src/test/java/org/apache/commons/lang3/mutable/MutableShortTest.java +++ b/src/test/java/org/apache/commons/lang3/mutable/MutableShortTest.java @@ -167,18 +167,22 @@ void testGetAndIncrement() { void testGetSet() { final MutableShort mutNum = new MutableShort((short) 0); assertEquals((short) 0, new MutableShort().shortValue()); + assertEquals(Short.valueOf((short) 0), new MutableShort().get()); assertEquals(Short.valueOf((short) 0), new MutableShort().getValue()); mutNum.setValue((short) 1); assertEquals((short) 1, mutNum.shortValue()); + assertEquals(Short.valueOf((short) 1), mutNum.get()); assertEquals(Short.valueOf((short) 1), mutNum.getValue()); mutNum.setValue(Short.valueOf((short) 2)); assertEquals((short) 2, mutNum.shortValue()); + assertEquals(Short.valueOf((short) 2), mutNum.get()); assertEquals(Short.valueOf((short) 2), mutNum.getValue()); mutNum.setValue(new MutableShort((short) 3)); assertEquals((short) 3, mutNum.shortValue()); + assertEquals(Short.valueOf((short) 3), mutNum.get()); assertEquals(Short.valueOf((short) 3), mutNum.getValue()); assertThrows(NullPointerException.class, () -> mutNum.setValue(null)); }