Ca 누군가가 왜 널 포인터 예외가 발생하는지 설명해 주시겠습니까? Java에서 관찰 가능 null
private Observer obs1;
private Observer obs2;
public void notifyObservers(Observable observable) {
String str1 = "Observer 1 :\n";
String str2 = "Observer 2 :\n";
try {
Student[] studList = returnStudents();
for (int i=0;i<returnStudents().length;i++) {
if(studList[i].computeAverage() >= 5)
str1 = str1 + studList[i].toString() + "\n";
else
str2 = str2 + studList[i].toString() + "\n";
}
} catch (MyException ex) {
System.out.println(ex.getMessage());
}
obs1.update(observable, str1);
obs2.update(observable, str2);
}
그리고 내 옵저버 클래스 :
public class Watcher implements Observer {
public void update(Observable arg0, Object arg1) {
System.out.println("The list of students has changed");
System.out.println(arg1);
}
}
좀 wwhat 여기에 무슨 일이 일어나고 설명합니다. 학생 목록을 관리하는 프로그램을 만들었습니다. 학생을 추가/삭제할 수 있습니다. 각 후 내가 observer1 평균 < 5 내가 널 포인터 예외가 받고 있어요와 사람을 보여 학년> 5 observer2의 평균과 studens을 보여주고 있음을 원하는 여기
setChanged();
notifyObservers(this);
를 호출 추가 여기 :
obs1.update(observable, str1);
나는
str1
과
str2
을 인쇄하려했는데 학생들의 목록이 포함되어 있다고 말해야 만합니다. 그래서 내 생각 엔 문제가있는 것입니다.
observable
여기서 'obs1'과'obs2'에 값을 할당하고 있습니까? 그것들은 널 NPE처럼 보입니다. –
변수에 'final'한정자를 추가하면 몇 가지 질문을하지 않아도됩니다. –