次のケースを検討してください。
String cat = "cat";
String cat2 = "cat";
out.println(cat == cat2); // true // Uses String#equals(...)
out.println(((Object) cat) == ((Object) cat2)); // true. Object#equals(...)???
// So it should be false!
==
デフォルトは、StackOverflow で回答.equals
によって比較されるオブジェクトのです。
これらをオブジェクトとしてキャストしているので、参照比較であるデフォルトの比較を使用すべきではありませんか?