2012-05-05 8 views
37

, 그것은이 라인에 나에게 오류를 제공java.lang.NullPointerException 오류를 해결하는 방법은 무엇입니까? 내 자바 프로그램을 실행하면

compiler.getTask(null, null, new DiagnosticCollector<JavaFileObject>(), null, null, compilationUnits);

나는 점점 오전 오류입니다 :이 오류를 해결할 수있는 방법을

Exception in thread "main" java.lang.NullPointerException 
    at AnotherClassLoader.loadClass(test.java:58) 
    at test.main(test.java:30) 
    at Main.main(Main.java:68) 

당신이 말해 주시겠습니까 ?

+0

도움이 필요하면 [SSCCE] (http://www.sscce.org)를 포함하십시오. 우리는 SSCCE 없이는 많은 것을 할 수 없습니다. 감사. 아, 질문의 제목을 조금 더 서술적인 것으로 변경하는 것을 고려해보십시오. – kentcdodds

+0

stacktrace는'NullPointerException'이 발생한 정확한 행을 제공합니다. 당신은 왜 당신이 그것을 가지고 있고 그것을 고쳐야하는지 이해해야 만합니다 ... –

+4

** 문제를 확인하고 ** 확인 된 문제를 해결 **합니다. NPE는'someNullExpression.someMember'의 경우에만 발생합니다. 즉, 'null'값은 자연적으로 발생하는이 예외에 대한 멤버/메소드의 * target * 표현이어야합니다. 게시 된 예제에는이 요구 사항을 충족시킬 수있는 * * 표현식 만 있습니다. (힌트 :'compiler' 변수는 무엇을 평가합니까?) –

답변

6

이 오류는 null 개체 인스턴스를 참조하려고 할 때 발생합니다. 주어진 정보로 인해이 오류의 원인을 알려 줄 수는 없지만 IDE에서 쉽게 디버깅 할 수 있습니다. 예기치 않은 프로그램 동작을 피하기 위해 예외 처리를 사용하는 것이 좋습니다.

74

NullPointerException은 전달할 변수 중 하나가 null이지만 코드가 그렇지 않은 것처럼 사용하려고한다는 것을 의미합니다. 예를 들어

, 내가 이렇게 할 경우 :

Integer myInteger = null; 
int n = myInteger.intValue(); 

코드는 myInteger의있는 intValue을 잡아하려고하지만,이 null이기 때문에, 그것은 하나가되지 않습니다 널 포인터 예외가 발생합니다.

이것은 getTask 메소드가 null이 아니지만 null을 전달하고 있음을 의미합니다. getTask가 필요로하는 것을 파악하고 원하는 것을 전달하십시오!

1

compiler 초기화 코드를 우리와 공유하지 않았으므로 어둠 속에서 그냥 쐈습니다. compiler을 검색하는 방식으로 문제가 발생합니다. JDK가 JDK와 달리 JRE를 가리 키도록하십시오. jre는 도구를 제공하지 않으므로 NPE이됩니다.

관련 문제