を比較だから私は、ジェネリックを使用して複素数のモジュールを検索し、二つのモジュールを比較することができます簡単なプログラムやろうとしている一方で:それは私に2つのリアルタイム・エラーの1を与えるしかしエラー二つの方法
public class ComplexNumber <T extends Number,U extends Number>
implements Comparable<ComplexNumber<T, U>>
{
private T real;
private U imaginary;
public ComplexNumber(T real, U imaginary)
{
this.real=real;
this.imaginary=imaginary;
}
public T getReal()
{
return real;
}
public int compareTo(ComplexNumber<?, ?> o)
{
return this.modul().compareTo(o.modul());
}
public U getImaginary()
{
return imaginary;
}
public double modul()
{
double c=Math.sqrt(real.doubleValue()*real.doubleValue()+imaginary.doubleValue()*imaginary.doubleValue());
return c;
}
public String toString()
{
return String.format("%.2f+%.2fi", real.doubleValue(), imaginary.doubleValue());
}
}
を.compareTo関数で "プリミティブ型doubleでcompareTo(double)を呼び出すことはできません"
とクラスの先頭に1つ: "この行の複数のマーカー - タイプComplexNumberは継承した抽象メソッドを実装する必要があります 比較可能> .compareTo(複合番号) - typあなたは間違いなく、ワイルドカードを使用する必要があるならば、あなたが必要と
@Override
public int compareTo(ComplexNumber<T, U> o) {
// logic
}
編集
:E複素数は、あなたがの線に沿って何かを探している」
これはできません。このメソッドではワイルドカードを使用する必要があります。 –
誰が言った..? –
私の願いでは、ワイルドカードを使う必要があると言います。 –