'finalize()' should be protected, not public
Reports any implementations of the Object.finalize()
method that are declared public
.
According to the contract of the Object.finalize()
, only the garbage collector calls this method. Making this method public may be confusing, because it means that the method can be used from other code.
A quick-fix is provided to make the method protected
, to prevent it from being invoked from other classes.
Example:
class X {
public void finalize() {
/* ... */
}
}
After the quick-fix is applied:
class X {
protected void finalize() {
/* ... */
}
}
Inspection Details | |
---|---|
Available in: | IntelliJ IDEA 2023.3, Qodana for JVM 2023.3 |
Plugin: | Java, 233.SNAPSHOT |
Last modified: 13 July 2023