0
public class DowloadEngine implements Runnable {
public DowloadEngine(CallBack c) {
callback = c;
}
public interface CallBack {
public void processDone(String message);
}
private final CallBack callback;
@Override
public void run() {
try {
Thread.sleep(4000);
} catch (InterruptedException e) {}
callback.processDone("'CallBack' func is called");
}
}
그리고 내 주요 클래스는 내가 콜백 방법을 통해 메인 클래스의 모든 작품을하고 싶어하지만 난이 방법을 이해하지 못했다 여기내 Java 코드에서 콜백 메소드를 어떻게 사용할 수 있습니까?
public class GUI implements DowloadEngine.CallBack{
public static void main(String[] args){
Thread thread = new Thread(new DowloadEngine(this));// Error :Make main not static!!
thread.start();
//wait a little to see the result
Scanner scan = new Scanner(System.in);
scan.nextLine();
//wait a little to see the result
}
@Override
public void processDone(String message) {
//code ...
//code ...
//code ...
System.out.println(message);
}
}
에있다. 어떻게 작동합니까? 어떻게 함께 사용할 수 있습니까?
(가 연관된 개체가 없기 때문에) 당신은'static' 방법 내부의'this' 참조에 액세스 할 수 없습니다 - 당신은 인스턴스를 생성해야합니다 ('새로운 GUI') 대신에 그것을 전달하십시오. – UnholySheep