Hey
Java ranchers,
I was doing a mock exam and came across this
public class Troll
{
Integer gruesomeness;
String flatness;
public static void main(String[] args)
{
Troll troll = new Troll();
Troll troll2 = new Troll();
troll.gruesomeness = 98762;
troll2.gruesomeness = 98762;
troll.flatness="flat";
troll2.flatness="flat";
System.out.println(troll.equals(troll2)); //#1
}
public boolean equals(Object arg0)
{
if (arg0 instanceof Troll)
{
Troll new_name = (Troll) arg0;
return gruesomeness==new_name.gruesomeness && new_name.flatness.equals(flatness);
}
return false;
}
public int hashCode()
{
return 0;
}
}
This prints out
false at //#1 for all the values > 127. Why is that?