S
StM
I have this class, which is defined as an inner class of another class
(so it's not the most beautiful class ever, but I needed it for a
really simple task):
#######################################################################
class SimpleClass {
String attrib_one;
String attrib_two;
String attrib_three;
SimpleClass(String attrib_one, String attrib_two, String
attrib_three) {
this.attrib_one = attrib_one;
this.attrib_two = attrib_two;
attrib_three = attrib_three;
}
public boolean equals(Object obj) {
if (obj instanceof SimpleClass) {
SimpleClass sc = (SimpleClass) obj;
return(attrib_two.equals(sc.attrib_two)
&& (attrib_one.equals(sc.attrib_one))
&& (attrib_three.equals(sc.attrib_three)));
} else
return false;
}
public int hashCode() {
return attrib_one.hashCode() + attrib_two.hashCode() +
attrib_three.hashCode();
}
public String toString() {
return ("[attrib_one: " + attrib_one + "; attrib_two: " +
attrib_two + "; attrib_three: " + attrib_three + "]");
}
}
#######################################################################
As you can see, there are three attributes and three methods of the
Object class overwritten (equals(), hashCode() - i don't actually need
it -, and toString()).
Somewhere else in the code, i check if a SimpleClass object is already
in a specified TreeSet
#######################################################################
TreeSet ts = new TreeSet();
[...]
SimpleClass sc = new SimpleClass(string1, string2, string3);
if (ts.contains(sc)) {
//blah blah
}
#######################################################################
and in the "if" branch I put the generated object in the TreeSet
itself.
#######################################################################
//blah blah
ts.add(sc);
//blah blah
#######################################################################
Now, the first .contains() is executed normally (I suppose that the
TreeSet simply sees it's empty), while the second throws a
ClassCastException. I don't know why is this happening. I'm absolutely
sure that when i cast a (SimpleClass), the object IS a SimpleClass.
I've searched the archives but I didn't find any clue. I'm using java
1.4.2.
Thanks for your help.
StM
(so it's not the most beautiful class ever, but I needed it for a
really simple task):
#######################################################################
class SimpleClass {
String attrib_one;
String attrib_two;
String attrib_three;
SimpleClass(String attrib_one, String attrib_two, String
attrib_three) {
this.attrib_one = attrib_one;
this.attrib_two = attrib_two;
attrib_three = attrib_three;
}
public boolean equals(Object obj) {
if (obj instanceof SimpleClass) {
SimpleClass sc = (SimpleClass) obj;
return(attrib_two.equals(sc.attrib_two)
&& (attrib_one.equals(sc.attrib_one))
&& (attrib_three.equals(sc.attrib_three)));
} else
return false;
}
public int hashCode() {
return attrib_one.hashCode() + attrib_two.hashCode() +
attrib_three.hashCode();
}
public String toString() {
return ("[attrib_one: " + attrib_one + "; attrib_two: " +
attrib_two + "; attrib_three: " + attrib_three + "]");
}
}
#######################################################################
As you can see, there are three attributes and three methods of the
Object class overwritten (equals(), hashCode() - i don't actually need
it -, and toString()).
Somewhere else in the code, i check if a SimpleClass object is already
in a specified TreeSet
#######################################################################
TreeSet ts = new TreeSet();
[...]
SimpleClass sc = new SimpleClass(string1, string2, string3);
if (ts.contains(sc)) {
//blah blah
}
#######################################################################
and in the "if" branch I put the generated object in the TreeSet
itself.
#######################################################################
//blah blah
ts.add(sc);
//blah blah
#######################################################################
Now, the first .contains() is executed normally (I suppose that the
TreeSet simply sees it's empty), while the second throws a
ClassCastException. I don't know why is this happening. I'm absolutely
sure that when i cast a (SimpleClass), the object IS a SimpleClass.
I've searched the archives but I didn't find any clue. I'm using java
1.4.2.
Thanks for your help.
StM