一般化されたタイプの多項式係数を持つ Polynomial クラスを実装しています。私はこのコードを持っています:
public class Polynomial<T> {
private HashMap<Integer, T > polynomial;
public Polynomial(T coefficient, Integer index) {
polynomial = new HashMap<Integer, T>();
if (coefficient!=0)
polynomial.put(index, coefficient);
}
public void sum(Polynomial<T> w) {
for (Map.Entry<Integer, T> e : w.polynomial.entrySet()) {
T tmp = polynomial.get(e.getKey());
if(tmp==null)
polynomial.put(e.getKey(), e.getValue());
else {
polynomial.remove(e.getKey());
if (tmp+e.getValue()!=0)
polynomial.put(e.getKey(), tmp+e.getValue());
}
}
}
...
}
明らかな理由でコンパイルされません。演算子: ==、!=、+、-、および * は、一般化された型 T に対して定義されていません。Java で知っていることから、演算子をオーバーライドすることはできません。どうすればこの問題を解決できますか?