Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Java Java Data Structures - Retired Organizing Data Comparable

Enyang Mercy
PLUS
Enyang Mercy
Courses Plus Student 2,339 Points

Help!!! Interfaces

What actual object are we comparing here. code says error. tweet not found Im on the second question

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 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;
  }
  @Override
  public int compareTo(Object obj) {
    Treet other = (Treet) obj; 
    if (equals(other)) {
      return 0;
    }
    return 1;
  }

}

1 Answer

Hi there,

You are comparing the individual instance of the class with the obj passed into the method.

There are two objects in play; the Object obj and the instance of BlogPost you are operating within.

Your Treet won't work as that's not what the challenge is dealing with. If you switch out Treet and use BlogPost instead, you should be good to go; I'll check in a second.

Steve.

Checked - yes your code works fine if you use the BlogPost class rather than Treet.

You can do this in fewer lines of code but I don't think it adds much to the readability. Rather than create a new holding vairable, other, do the cast inside the equals parentheses:

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

Like I said, I think this is less clear code-wise but it's worth consideration.