开发者

implementing a comparable interface in java

I want my class to implement the Comparable interface. Which of the following appr开发者_如何转开发oaches is correct

Option 1:

public Myclass implements Comparable<MyClass>{

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

}

Option 2:

public Myclass implements Comparable{

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


}


Option 1. The answer is in the comments of the second snippet. You would avoid explicit type casting.

Option 1 takes advantage of Java Generics. Here is a link to the tutorial on Generics


I'd hesitate to call one "correct" and the other "incorrect," but option 1 seems "better." Option 1 uses generics, and one of the primary benefits of generics is to avoid doing the awkward instanceof followed by a cast from Option 2. However, generics were not originally part of Java, so some legacy code still uses the Option 2 approach.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜