내 프로그램에이 구조가 있습니다.실행중인 서버 스레드의 객체를 얻는 방법은 무엇입니까?
class Node0
private Server server;
...
public void init(){
server.waitConnections();
...
class Server
socket = ss.accept(); // ss :socketServer object
handler = new Handler(socket);
handler.start(); // start handler thread
class Handler
public void run() {
while (true) {
try {
package = (Package) ois.readObject(); // ois :ObjectInputStream
if (package != null) {
this.setPackage(package);
}
} catch (Exception e) {
break;
}
}
이제 Node0 클래스의 Handler 클래스에서 패키지 객체를 가져와야합니다. 어떻게 할 수 있습니까? Handler
클래스의 패키지를 받았지만 지금은 Node0 클래스에이 객체를 보낼 수 있어야합니다. 그러나이 값을 가져 오려고하면
class Node0
server.getHandler().getPackage();
NullPointerException
가 실행됩니다.
어떻게 할 수 있는지 알기 원하십니까?
그건 컴파일 할 수있는 것이 아닙니다. 실제 코드를 게시하십시오. –
예외를 처리하지 않으려면 예외를 catch하지 마십시오. 적어도 그들을 기록하거나 오류로 다시 던지십시오. 'server.getHandler(). getPackage()'가'NullPointerException'을 일으키는 경우,'server' 또는'server.getHandler()'는'null'입니다. –
Ryan 나는 내 게시물보다 3 개의 클래스가 매우 길기 때문에 코드를 붙여 넣지 않습니다. 제 아이디어를 표현하려고 시도한 것입니다. –