Why is this an issue?
Nested code blocks can be used to create a new scope and restrict the visibility of the variables defined inside it. Using this feature in a method
typically indicates that the method has too many responsibilities, and should be refactored into smaller methods.
Noncompliant code example
public void evaluate(int operator) {
// Do some computation...
{
int a = stack.pop();
int b = stack.pop();
int result = a + b;
stack.push(result);
}
}
Compliant solution
public void evaluate(int operator) {
// Do some computation...
evaluateAdd();
}
private void evaluateAdd() {
int a = stack.pop();
int b = stack.pop();
int result = a + b;
stack.push(result);
}