It’s exactly as the title says, I am trying to pass an object into a method, so that I can compare strings. The object doesn’t convert properly, showing up as "MediaItem@9a2", and I know I have to use override but I’m not quite sure how to do this.
public class MediaItem {
private String title;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public MediaItem(String t)
{
setTitle(t);
}
public MediaItem()
{
}
public boolean equals(Object obj)
{
String temptitle = getTitle();
temptitle = temptitle.toLowerCase();
temptitle = temptitle.trim();
// System.out.println(temptitle);
String tempobj = obj.toString();
System.out.println(tempobj);
tempobj=tempobj.toLowerCase();
tempobj= tempobj.trim();
System.out.println(tempobj);
if (temptitle.equals(tempobj))
{
System.out.println("this");
return true;
}
else{
return false;
}
}
@Override
public String toString()
{
return obj.title;
}
}
There’s a bad attempt at overriding at the bottom of the code. Also, not sure why all the colour has disappeared from the code.
Edit: Ok maybe I should add some more explanation: The task is to compare the obj sent in and the title of the current object. If they match, I return true. If not, I return false. The only thing I am allowed to change is the stuff within the equals(object obj) method. I can also add override. That’s it. Is there an easier way to do this than what I was trying to do?
>Solution :
public String toString()
{
return title;
}
is sufficient you could also use return this.title;
however the this
is implicit as there are no other title defined in the method