AvoidBranchingStatementAsLastInLoop
우선순위 : 2
루프의 가장 마지막 위치에서 분기문을 사용하는 경우 버그가 발생할 가능성이 높다.
사용한 방법이 버그가 아닌지 확인하거나 다른 접근 방법을 사용해야 한다.
샘플 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | // unusual use of branching statement in a loop for (int i = 0; i < 10; i++) { if (i*i <= 25) { continue; } break; } // this makes more sense... for (int i = 0; i < 10; i++) { if (i*i > 25) { break; } } |
부연설명
Loop문의 내의 continue문이나 break문은 문장의 흐름을 제어하는 역할로 가독성의 측면에서 본다면 문장의 정상적인
흐름을 방해하는 부분도 있습니다. 이러한 요소가 자주 사용된다는 것은 그만큼 문장의 흐름을 이해하기 힘들게 만들고
또 그러인해 버그가 발생할 가능성이 높아질 것입니다.
가급정 문장 흐름을 제어하는 문장은 적게 사용하는 것이 좋겠습니다.
SimplifiedTernary
우선순위 : 3
조건문?boolean 상수:foo 또는 조건문?foo:boolean 상수 형태의 3항 연산자를 사용이 필요하다면
이러한 문장은 각각 다음과 같이 간단하게 표현할 수 있다.
boolean 상수가 처음 결과이면서 true인 경우 : condition || foo
boolean 상수가 두 번째 결과이면서 true인 경우 : !condition || foo
boolean 상수가 처음 결과이면서 false인 경우 : !condition && foo
boolean 상수가 두 번째 결과이면서 false인 경우 : condition && foo
샘플 코드
3항 연산자는 대체로 가독성을 떨어뜨리므로 가능한한 단순한 표현으로 대체하라는 의미입니다.
~MustUseBraces
우선순위 : 3
이 룰셋에 해당하는 룰은 총 4가지가 있습니다.
전체적인 내용은 코드의 가독성을 위해 if, if/else, while, for문에 반드시 braces({})를 사용하라는 것입니다.
전체 내용 그대로 옮깁니다~
IfStmtsMustUseBraces
샘플 코드
WhileLoopsMustUseBraces
샘플코드
IfElseStmtsMustUseBraces
샘플코드
ForLoopsMustUseBraces
샘플코드
UnnecessaryConstructor
우선순위 : 3
다음과 같은 경우에는 생성자가 필요없습니다.
하나의 생성자만 있으며, public이고 생성자의 내용이 없으며 전달받은 인자가 없는 경우
샘플코드
부연설명
위와 같은 경우에는 컴파일러가 자동으로 기본 생성자를 생성하므로 굳이 명시적으로 코딩을 할 필요가 없다.
다만 기본 생성자가 아닌 새성자를 추가하게 되면 컴파일러는 기본생성자를 자동으로 추가하지 않으며
필요에 따라 기본 생성자를 코딩해주어야 한다.
'Development > JAVA' 카테고리의 다른 글
[디비 파기 | PMD] ConstructorCallsOverridableMethod외 4건 (0) | 2016.03.19 |
---|---|
[디비 파기 | PMD] NullAssignment 외 3건 (0) | 2016.03.13 |
[Spring] 작은 사이트 구축 과정에서 발생한 소소한 에러들... (0) | 2016.03.04 |
[Spring] 웹 서비스 구현 시 사용한 기술에 대한 느낌들 (0) | 2016.03.01 |
[디비 파기 | PMD] CheckResultSet (0) | 2016.02.28 |