An empty method is generally considered bad practice and can lead to confusion, readability, and maintenance issues. Empty methods bring no functionality and are misleading to others as they might think the method implementation fulfills a specific and identified requirement.
There are several reasons for a method not to have a body:
This does not raise an issue in the following cases:
@org.aspectj.lang.annotation.Pointcut()
public abstract class Animal {
void speak() { // default implementation ignored
}
}
To fix this issue, either make the method do something, throw an exception, or add a comment to explain why it is empty.
public void shouldNotBeEmpty() { // Noncompliant - method is empty
}
public void notImplemented() { // Noncompliant - method is empty
}
@Override
public void emptyOnPurpose() { // Noncompliant - method is empty
}
public void doSomething() {
doSomething();
}
public void notImplemented() {
throw new UnsupportedOperationException("notImplemented() cannot be performed because ...");
}
@Override
public void emptyOnPurpose() {
// comment explaining why the method is empty
}