1

ジェネリック インターフェイス Comparable を実装し、equals、hashCode、および toString メソッドをオーバーライドするクラスを作成したいのですが、どのようにすればよいでしょうか?

これでよろしいでしょうか

interface MinMax<T extends Comparable<T>> {

T equals();
T hashCode();
T toString();

}

class Employee<T extends Comparable<T>> implements MinMax<T> {

 public T equals(){

  }

  public T hashCode(){

  }

  public T toString(){

  }



  }
4

3 に答える 3

2

質問には 2 つの部分があります。

パート 1: equals、hashCode、および toString をオーバーライドします。

新しい実装を使用して、新しいクラスでこれらのメソッドを再定義するだけです。

class Employee {

    //fields and other methods

    public boolean equals(Object other) {
        //new implementation here
    }
    public int hashCode() {
        //make sure two equal objects produce the same hashCode
    }
    public String toString() {
        //return whatever you want here
    }
}

パート 2: Comparable インターフェースを実装します。

他の従業員と比較したいのだと思います。Comparable を実装することを宣言し、インターフェイスで記述された compareTo メソッドを実装します。

public Employee implements Comparable<Employee> {

    //fields and methods

    public int compareTo(Employee e) {
        //new implementation. Should probably be consistent with equals.
    }
}
于 2012-09-12T00:09:35.203 に答える
1

クラスは必要な数のインターフェースを実装できます。それらを「グループ化」する必要はありません。

class Employee implements Comparable, MinMax{ ... }

とにかく、インターフェイス メソッドの実装を提供する必要があります。

于 2012-09-11T23:50:57.530 に答える