什么是本地类比其方法更长寿的例子?

时间:2013-09-10 21:05:30

标签: java

本地类的实例比其方法更长久的例子是什么? 只能在该方法中看到本地类/数据类型, 什么应该是应该存储对本地类实例的引用的变量的数据类型? 应该在哪里使用这样的本地类(实例比其方法更长)?

1 个答案:

答案 0 :(得分: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)方法状态的另一个线程中调用。