在 Java 中,Runnable task = ()->{}
这行代码定义了一个 Runnable
接口的匿名实现类,并将其实例赋值给变量 task
。下面是这行代码的详细解释:
-
Runnable:这是一个 Java 核心库中的接口,定义了一个
run
方法,该方法是任何希望由线程执行的对象必须实现的。 -
task:这是一个变量名,用来存储
Runnable
接口的实现。 -
->
:这是 Java 8 引入的 Lambda 表达式的一部分,用于简化单方法接口的实现。Runnable
接口只有一个抽象方法run
,因此可以使用 Lambda 表达式来简洁地实现它。 -
{}
:这是 Lambda 表达式的主体部分,即run
方法的实现。在这个例子中,{}
是空的,意味着run
方法中没有任何代码。 -
匿名实现类:使用 Lambda 表达式创建的
Runnable
实现是一个匿名类,因为它没有显式地声明一个类名。 -
接口实现:通过 Lambda 表达式,我们直接提供了
run
方法的实现,而不需要显式地声明一个类并实现Runnable
接口。
下面是一个更具体的例子,展示了如何使用 Lambda 表达式来实现 Runnable
接口,并在 run
方法中添加实际的代码:
Runnable task = () -> {
System.out.println("任务执行!");
};
在这个例子中,task
是一个 Runnable
对象,当我们调用它的 run
方法时(通常是通过创建一个线程并启动它),它会打印出 “任务执行!”。
Lambda 表达式提供了一种更简洁的方式来实现单方法接口,使得代码更加简洁和易于理解。在多线程编程中,Lambda 表达式经常被用来定义线程任务。