动漫人物
当您希望满足以下条件时,唯一的情况是内部类与匿名类(又名Java闭包)具有完整的功能您需要提供接口或抽象类实现您想使用在调用函数中定义的一些最终参数您需要记录接口调用的执行状态。例如,有人想要一个,Runnable而您想记录执行开始和结束的时间。对于匿名类,这是不可能的,对于内部类,您可以做到这一点。这是一个例子来说明我的观点private static void testMethod ( final Object param1, final Object param2 ){ class RunnableWithStartAndEnd extends Runnable{ Date start; Date end; public void run () { start = new Date( ); try { evalParam1( param1 ); evalParam2( param2 ); ... } finally { end = new Date( ); } } } final RunnableWithStartAndEnd runnable = new RunnableWithStartAndEnd( ); final Thread thread = new Thread( runnable ); thread.start( ); thread.join( ); System.out.println( runnable.start ); System.out.println( runnable.end );}不过,在使用此模式之前,请评估普通的旧顶级类,内部类或静态内部类是否是更好的选择。