可以run()返回对象吗?

P R*_*P R 2 java runnable timertask

假设这是场景:

class A extends TimerTask{
  int a;
  public void run(){
    //operation to be performed periodically
  }
}
Run Code Online (Sandbox Code Playgroud)

class B{
  int delay=2000,interval=3000;
  A objectA;
  public static void main(String[] args){
    Timer t=new Timer();
    t.scheduleAtFixedRate(new A(),delay,interval);
  }
}
Run Code Online (Sandbox Code Playgroud)

无法run()归还物品?如果我做出这样的改变,就会引用不兼容性.为什么?

dac*_*cwe 5

使用FutureTask(和Future)with ExecutorService(参见API页面上的示例).


例:

public static void main(String[] args) throws Exception {

     FutureTask<String> future = 
             new FutureTask<String>(new Callable<String>() {
         public String call() {
             try {
                 Thread.sleep(1000);
             } catch (InterruptedException e) {
                 e.printStackTrace();
             }
             return "Hello World!";
         }
     });

     ExecutorService executor = Executors.newFixedThreadPool(10);
     executor.execute(future);

     System.out.println(future.get());
}
Run Code Online (Sandbox Code Playgroud)