1

本地类的实例比它的方法寿命长的例子是什么?看到本地类/数据类型仅在该方法中可见,应该存储对本地类实例的引用的变量的数据类型应该是什么?应该在哪里使用这样的本地类(实例超过它们的方法)?

4

1 回答 1

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)方法所述。

于 2013-09-10T21:10:04.540 回答