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.
精彩评论