|
만일 오로지 하나의 상태(예를 들면, 오직 참 또는 오직 거짓)를 가지는 어떤 상태가 있다면, 또는 널 포인터 예외를 잠재적으로 던질 수 있는 메소드 인보케이션이 있다면, Constant
conditions & Exceptions는 항상 당신에게 알리기 위해 디자인되었습니다.
만일 Constant
conditions & exceptions 체크 박스가 선택되고 Inspection이 어떤 문제를 발견하면, Inspection 툴 윈도우는 일정한 조건 또는 예외를 던질 수 있는 메소드를 보여주는 Constant
conditions & exceptions 탭을 표시합니다
이 검사에 의해 발견된 문제에 대한 어떤 사전 정의의 솔루션도 없습니다
|

|
이 검사는 어떤 옵션도 가지지 않습니다.
|
다음의 클래스를 보십시오:
public class MyKeyListener extends KeyAdapter {
public void keyTyped(KeyEvent e) {
int keyCode = e.getKeyCode();
if (keyCode == KeyEvent.VK_F1) {
showHelp();
}
else if (keyCode == KeyEvent.VK_F2) {
saveCurrentFile();
}
else if (keyCode == KeyEvent.VK_F1) { // Error here. Should be KeyEvent.VK_F3
openNewFile();
}
else if (keyCode == KeyEvent.VK_F4) {
closeCurrentFile();
}
}
Inspection 결과는 툴 윈도우에 나타납니다:

검사는 조건 <else if (keyCode == KeyEvent.VK_F1)> 은 항상 false 이고 그러므로 그것은 결코 실행되지 않을 것이라는 것을 우리에게 알립니다.
예를 들면, 다음의 코드를 조사하십시오:
public void myMethod(String m_str) {
String str = m_str;
if (str != null) {
System.out.println(str.charAt(1));
}
...
//some code here - but str is not changed
...
System.out.println(str.charAt(1));
}
Inspection 결과는 툴 윈도우에 나타납니다:

이 검사는 NPE가 문자열 <에 생산될지도 모르는 것을 우리에게 알립니다 ><System.out.println(str.charAt(1));> 에서 생성되었을 것을 우리에게 알려줍니다.
그러나, if 조건 없이 이 메소드는 무시될 것 입니다(당연히, IDEA은 어느 것이 매개 변수로서 메소드에 넘어가는지 모릅니다).
|