이것은 Java로, 크로스 플랫폼이며 OpenJDK가 설치된 Ubuntu Oneric을 실행하는 컴퓨터에서 디버깅 중입니다.Java - EnumSet.add (enum), NullPointerException을 throw합니다.
저는 작업중인 게임에서 클래스 내부를 확인하기위한 EnumSet을 보유하고 있습니다. 나는 디버그 많이에서 내 생성자에서, 로그 캣에서이 판독이 : 좋지
Tile : passability being set...?
Exception in thread "Thread-1" javax.media.opengl.GLException:java.lang.NullPointerException
...
Caused by: java.lang.NullPointerException
at net.darkglass.map.Tile.addPassability(Tile.java:144)
...
합니다. 그것을 추적, 내 문제는 전적으로,이 줄을 것 같습니다 :
public void addPassability(Passability type)
{
this.passability.add(type);
}
나는 그 기능의 본문을 의미합니다. 다음과 같이 생성자에서 호출됩니다.
this.addPassability(Passability.AIR);
NullPointerException이 발생합니다. Passability Enum Type의 본문에서 나는 문자 그대로 전체 enum 저장 패키지 선언을 그대로 사용하여
public enum Passability
{
AIR, ALL, GROUND, NONE, SIGHT, SKILL, STRUCTURE, WATER;
}
을 가지고 있습니다. this.passability 클래스 정의의 시작 부분에
private EnumSet <Passability> passability;
을 선언하고 나는 추가() 메소드는 자바 표준에서 각각 EnumSet의 정의의 한 부분으로 상속하는 인상이었다.
나는 독학하지만, 나는 미치지 않습니다. 뭔가 잘못되었거나 더 나은 방법이 있습니다. 핸드를 빌려줄 수있는 유용한 지식을 가진 사람?
코드 조각을 더 많이 표시 할 수 있습니까? 여기 저기에 선이 보이면 모두보아야합니다. – Adrian
Jon Skeet 있습니다. 프리미엄을 사용하는 데 너무 익숙해 져서 결코 초기화하지 않았습니다. 일을 제정신으로 유지하기 때문에 키스를하려고합니다. –