Java
Covariant 'equals()'
Warning
New
Last modified: 03 December 2024 Reports equals()
methods taking an argument type other than java.lang.Object
if the containing class does not have other overloads of equals()
that take java.lang.Object
as its argument type.
A covariant version of equals()
does not override the Object.equals(Object)
method. It may cause unexpected behavior at runtime. For example, if the class is used to construct one of the standard collection classes, which expect that the Object.equals(Object)
method is overridden.
Example:
class Foo {
public boolean equals(Foo foo) { // warning
return false;
}
}
class Bar {
public boolean equals(Bar bar) { // no warning here
return false;
}
@Override
public boolean equals(Object obj) {
return false;
}
}
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
CovariantEquals
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Java, 243.23126 |
Thanks for your feedback!
Was this page helpful?