本地类的实例比其方法更长久的例子是什么? 只能在该方法中看到本地类/数据类型, 什么应该是应该存储对本地类实例的引用的变量的数据类型? 应该在哪里使用这样的本地类(实例比其方法更长)?
答案 0 :(得分:4)
一个例子是实施Runnable / Callable的本地课程,然后发送到ExecutorService或ScheduledExecutorService,例如:
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)方法状态的另一个线程中调用。