명확성을 위해서는, 변수들은 변수들이 사용되는 곳과 가능한 가까운 곳에서 선언되어야 합니다. 이것은 특히 메소드가 조기 반환(early return)하거나, 잠재적으로 예외를 throw 할 가능성이 있을 때 특히 그렇습니다. 이러한 경우, 조기 반환이 먼저 만족되어 절대 사용되지 않을 변수를 선언하는 것은 의미없을 뿐 아니라 혼란스럽습니다.
규칙을 어긴 코드
public boolean isConditionMet(int a, int b) {
int difference = a - b;
MyClass foo = new MyClass(a); // 규칙을 어긴 코드; 조기 반환 이전에 사용되지 않습니다.
if (difference < 0) {
return false;
}
// ...
if (foo.doTheThing()) {
return true;
}
return false;
}
규칙을 준수한 해결책
public boolean isConditionMet(int a, int b) {
int difference = a - b;
if (difference < 0) {
return false;
}
// ...
MyClass foo = new MyClass(a);
if (foo.doTheThing()) {
return true;
}
return false;
}
If you like SONARKUBE, don’t forget to give me a star.