我習慣用類似JavaScript或類似Erlang的語言編寫代碼,我可以通過簡單的方式編寫回調函數。現在我必須用Java編寫一些東西。我想出瞭如何執行回調如下:使用Runnable在Java中實現回調
import java.util.*;
class Demo extends Thread{
private int data;
public void run(){
ask_for_data(new Runnable(){
public void run(){
on_data();
}
});
}
public void on_data(){
System.out.println("Async callback: " + data);
}
public void ask_for_data(final Runnable callback){
System.out.println("2");
Runnable r = new Runnable(){
public void run(){
data = get_data();
new Thread(callback).start();
}
};
new Thread(r).start();
}
public int get_data(){
try{
Thread.sleep(1000);
} catch (Exception e) {};
return 42;
}
public static void main(String[] args) {
Demo d = new Demo();
d.start();
}
}
問題是:它是正確的方法嗎?
http://codereview.stackexchange.com/ – Reimeus