간단히하기 위해 문제의 원인이되는 핵심 요소에서 발생하는 오류를 복제했습니다.Java 클래스의 다른 인스턴스
세 가지 주요 클래스가 있습니다. 첫 번째 클래스는 메서드를 초기화하고 설정하는 주 클래스입니다 (주). 그런 다음 데이터베이스의 데이터를 코드 (Init)로 가져 오는 데이터베이스 클래스가 있습니다. 셋째 GUI 요소 (접근 자)를 처리하는 GUI 클래스가 있습니다.
accessor.print()를 호출 할 때 주 클래스 (init.setUp)에서 데이터베이스 클래스 (accessor.setUp)에서 초기화 한 변수 (메시지)가 null로 나타나는 문제가 발생했습니다. 메소드를 GUI 클래스의 ActionListenerEvent 다음에 추가하십시오.
나는 같은 클래스의 다른 인스턴스가 있기 때문에 이런 일이 발생하지만 어떻게 해결해야할지 모르겠다.
public class Init {
public String message;
public void setUp(){
message="Hello World";
}
public void print(){
System.out.println(message.length());
}
}
이 접근 클래스는 다음과 같습니다 : 사전에
public class Accessor {
public void tryAccess(){
Init init=new Init();
init.print();
}
}
감사
public class main {
public static void main(String[] args){
Init init=new Init();
init.setUp();
Accessor acc=new Accessor();
acc.tryAccess();
}
}
이 초기화 클래스는 다음과 같습니다
이 메인 클래스입니다.
왜 개별 인스턴스를 사용하고 있습니까? – shmosel
생성자를 통해 접근 자에게 또는 생성 된 init 인스턴스를 tryAccess() 메서드의 인수로 전달할 수 있으므로 초기화 인스턴스가 하나만 있습니다. 또한 인스턴스간에 액세스해야하는 경우 메시지를 정적 변수로 선언 할 수 있습니다. – Santo