我tryig做了一个ActionListener拉姆达expresion,但它给我表达的IllegalStart,我试图跑这么远是这样的:Lambda表达式在java中不工作
JFrame frame = new JFrame();
JButton boton = new JButton("Lambda Button");
boton.addActionListener(event -> System.out.println("Hello World!"));
frame.add(boton);
frame.setVisible(true);
在另一方面,当我使用此代码来代替:
JFrame frame = new JFrame();
JButton boton = new JButton("Lambda Button");
boton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
System.out.println("Hello World!");
}
} );
frame.add(boton);
frame.setVisible(true);
这工作完全正常,
起初,我因子评分的问题可能是java我运行的版本,但我只是更新保持做同样的,当我做了Java的版本我给我的以下内容:
Java的版本 Java版本 “1.8.0_45” 的Java(TM)SE运行时环境(建立1.8.0_45-B14) Java的热点(TM)客户端虚拟机(建设25.45-B02,混合模式)
所以,就我所知有lambda表达式兼容,但没有赢得成功上做他们的工作,任何想法或建议版本他会发生什么?
编辑: 当我尝试编译我得到这个:
Prueba.java:57: error: illegal start of expression
boton.addActionListener(event -> System.out.println("Hello World !"));
^1 error
EDIT2:我没有使用任何IDE ,即时命令行
你在用什么IDE?您确定项目的JDK是否定义为Java 8 JDK主页? – mtyurt
在您的IDE中,您是否将代码编译为1.8? (在Eclipse中:项目属性> java编译器>符合JDK)。无论您使用哪个JRE来运行它,您仍然需要将它编译为1.8。 –
我不使用任何IDE,即时通讯从命令行运行它... – user4792574