클래스 내부의 객체가있는 배열을 통해 반복 문제가 발생합니다. 여기에 약간의 데모를 작성하면 따라갈 수 있습니다.클래스 내부의 객체 배열을 반복합니다.
Tank tanks[] = new Tank[2];
tanks[0] = new Tank();
tanks[1] = new Tank();
tanks[0].doStuff(tanks);
doStuff(Tank[] tanks) {
for (int i = 0; i < tanks.length; i++) {
if (tanks[i].equals(this)) continue;
// Do stuff
}
}
그래서 Tank 유형의 배열이 있습니다. 그런 다음 Tank 클래스 내부에서 doStuff 메소드를 호출합니다. 메서드는 배열을 가져 와서 루프합니다. 그리고 나는 그 클래스의 현재 인스턴스가 아닌 모든 탱크에 물건을 넣기를 원합니다. 내 코드와이 설명을 이해할 수 있기를 바랍니다.
문제
내가 잘못 여기서 뭐하는 거지if (tanks[i].equals(this))
에 대한 NullPointerException이 얻을 무엇입니까?
그 코드의
==
을 사용할 수 있습니다)를 배열로 사용합니다. 질문을 편집하여 문제를 시연하는 짧지 만 완전한 * 프로그램을 제공하십시오. –equals 메서드가 다시 구현 되었습니까? 그렇다면 보여줄 수 있습니까? 이 null이 올 것이라고 생각하는 유일한 곳이지만, 다시 구현하고 잘못된 작업을 수행 한 경우에만 가능합니다. 나머지는 깨끗합니다. –
@JonSkeet이 구문을 사용하여 배열을 만들 수 있습니다. 이상하지만 변수 이름에 배열로 선언했습니다. –