You can get reference and change element array:
A.getValues()[0] = -100500
You can use reflection to change values field, or somewhere else (probably author means) or with inheritance as showed below.
For instance,
Immutable class:
import java.util.Arrays;
public final class A {
private int[] values;
public int[] getValues() {
return values;
}
}
Immutable object:
import java.util.Arrays;
public class A {
private final int[] values;
public A(int[] values) {
this.values = null == values ? null : Arrays.copyOf(values);
}
public int[] getValues() {
return Arrays.copyOf(values);
}
}
Immutable class and object:
import java.util.Arrays;
public final class A {
private final int[] values;
public A(int[] values) {
this.values = null == values ? null : Arrays.copyOf(values);
}
public int[] getValues() {
return Arrays.copyOf(values);
}
}