0

I want my class to implement the Comparable interface. Which of the following approaches 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
  }


}

2 Answers 2

4

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

Sign up to request clarification or add additional context in comments.

Comments

1

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.