Java Java Data Structures Organizing Data Comparable

Leo Marco Corpuz
Leo Marco Corpuz
18,975 Points

Interface challenge part 2

I get an error saying that the compareTo method should always return 1.

com/example/BlogPost.java
package com.example;

import java.util.Date;

public class BlogPost implements Comparable {
  private String mAuthor;
  private String mTitle;
  private String mBody;
  private String mCategory;
  private Date mCreationDate;

  public BlogPost(String author, String title, String body, String category, Date creationDate) {
    mAuthor = author;
    mTitle = title;
    mBody = body;
    mCategory = category;
    mCreationDate = creationDate;
  }
  public int compareTo(Object obj){
  BlogPost castObj= (BlogPost) obj;
  if (castObj.equals(obj)){
   return 0;
  }
  else{
  return 1;
  }
  }

  public String[] getWords() {
    return mBody.split("\\s+");
  }

  public String getAuthor() {
    return mAuthor;
  }

  public String getTitle() {
    return mTitle;
  }

  public String getBody() {
    return mBody;
  }

  public String getCategory() {
    return mCategory;
  }

  public Date getCreationDate() {
    return mCreationDate;
  }
}
Ikuyasu Usui
Ikuyasu Usui
45,269 Points

Can you fix this first and run to see the error?

@Override
 public int compareTo(Apple other) {
Binyamin Friedman
Binyamin Friedman
14,614 Points

Ikuyasu Usui I don't think you're right about that.

1 Answer

Hi!, the working code is this:

  public int compareTo(Object obj){
  BlogPost castObj= (BlogPost) obj;
  if (equals(castObj)) {
    return 0;
  }
return 1;
  }

You dont need an else statment, if it equals it will return 0 and will go out of the loop if it isnt it will continue and will return 1. I think you have a problem inside your if statment as well, it seem like it could work but the complier doesn't accpet it. it accpeted my way for the check.