Проблема с первой версией метода (на что жалуется FindBugs) заключается в том, что он НЕ симметричен .
Если у вас есть объект Foo f
, для которого f.equals("someName")
равен true
, то симметрия говорит, что "someName".equals(f)
также должно быть true
. Но вы не можете реализовать это: "someName".equals(...)
вернет false
для любого параметра, который не является строкой.
Вторая версия метода также неверна, поскольку вы говорите, что экземпляр Foo
может быть равен экземпляру DefaultTableModel
... но не другому экземпляру Foo
. Это означает, что экземпляр Foo
не может быть равен самому себе, и поэтому equals
является НЕ рефлексивным . Кроме того, неясно, что такое идентификатор model
...