代码之家  ›  专栏  ›  技术社区  ›  Nickname

如何在java代码上使用回调方法?

  •  0
  • Nickname  · 技术社区  · 7 年前
    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");
    }
    }
    

    这里有我的主课

    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);
    }
    }
    

    我想通过回调方法在主类上完成所有工作,但我不理解这些方法。它是如何工作的? 我怎么能把它们一起用呢?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Optional    7 年前

    更改:

    Thread thread = new Thread(new DowloadEngine(this));

    Thread thread = new Thread(new DowloadEngine(new GUI()));