2013-09-10 16 views
1

什麼是一個本地類實例超出其方法的例子? 查看本地類/數據類型僅在該方法中可見, 應該存儲對本地類實例的引用的變量的數據類型應該是什麼? 應該在哪裏使用這種本地類(實例超出其方法)?什麼是一個地方班超出其方法的例子?

+2

你在說匿名課嗎?請添加代碼。 – allprog

回答

4

一個例子是實施Runnable/Callable,然後被髮送到ExecutorServiceScheduledExecutorService局部類如:

public void sendMailAsync(Message msg){ 

    class MailSendingRunnable implements Runnable(){ 

     private MailSender mailSender; 
     private Message msg; 

     public MailSendingRunnable(Message msg, MailSender mailSender){ 
      // ... 
     } 

     public void run(){ 
      mailSender.send(msg); 
     } 

    } 

    this.executor.submit(new MailSendingRunnable(this.mailSender, msg); 
} 

正如你所看到的,MailSendingRunnable將居住在該方法返回,因爲該方法運行後在MailSendingRunnable中,稍後將在另一個線程中調用ExecutorService.submit(Runnable)方法。

相關問題