0

Comparableクラスにインターフェースを実装してもらいたい。次のアプローチのどれが正しいですか

オプション1:

public Myclass implements Comparable<MyClass>{

  public int compareTo(MyClass o){
   //impl here
  }

}

オプション2:

public Myclass implements Comparable{

  public int compareTo(Object o){
     //check if o  instance of my class
     //impl here
  }


}
4

2 に答える 2

4

オプション1。答えは2番目のスニペットのコメントにあります。明示的な型キャストは避けてください。

オプション1は、JavaGenericsを利用します。ジェネリックに関するチュートリアルへのリンクは次のとおりです

于 2011-03-04T06:04:59.700 に答える
1

一方を「正しい」、もう一方を「正しくない」と呼ぶのは躊躇しますが、オプション1の方が「良い」ようです。オプション1はジェネリックを使用し、ジェネリックの主な利点の1つは、厄介なinstanceof後にオプション2からキャストすることを回避することです。ただし、ジェネリックは元々Javaの一部ではなかったため、一部のレガシーコードは引き続きオプション2のアプローチを使用します。

于 2011-03-04T06:05:41.513 に答える