私は問題があります。数値インターフェイスを作成し、インターフェイスに静的最終オブジェクトを作成しています。オブジェクトを変更して同等性をチェックすると、true が返されます。「等しい」を上書きしましたが、問題は変わりません。
コードは次のとおりです。
public interface Numeric<T extends Number> extends Cloneable, Comparable<T> {
public static final Numeric<Short> SHORT = new Numeric<Short>() {
private short value = (short) 0;
@override
public Numeric<Short> add(Short value) {
this.value += value;
return this;
}
@override
public Short value() {
return value;
}
}
public Numeric<T> add(T value);
public T value();
//....
}
public class Test {
public static void main(String[] args) {
Numeric<Short> one = Numeric.SHORT;
Numeric<Short> two = Numeric.SHORT;
one.add(Short.MIN_VALUE);
System.out.println(two.value()); //print -32768!!!!! why not 0?
}
}
答えてくれてありがとう!