[英]Lambda expression syntax in java
我试图了解“e”如何适合 java 中的以下 lambda 表达式:
testButton.addActionListener(e -> System.out.println("Click Detected by Lambda Listner"));
为什么是“e”? 不应该是“()”吗?
e
这里是变量的名称(方法的参数),可以是任何东西。 e
可能是ActionEvent
类型,a ()
表示没有参数的方法
addActionListener
方法需要一个ActionListener
,它是一个具有单个方法的接口
public void actionPerformed(ActionEvent e);
在Java 8中,您可以使用lambda表达式通过这种方法来实现一个接口。 规则是lambda表达式必须具有与接口中的方法相同的参数类型和返回类型。 然后,编译器可以将lambda表达式转换为实现该接口的类。
因此,在这种情况下,您需要一个lambda表达式
ActionEvent
void
返回类型-也就是说,它不返回任何内容。 在e -> System.out.println("something");
, e
是ActionEvent
。 如果接口中的单个方法根本没有参数,则只能将其替换为()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.