符号错误,期望“-”符号。

4

我正在使用Eclipse IDE for Java Developers,Kepler Service Release 2版本,并安装了jdk1.8.0作为JRE。

我正在使用《Java全能指南》学习Java SE 8,在编写一个使用Swing的程序时,遇到以下错误:syntax error on token "-", -- expected

这是我的代码:

button1 = new JButton("Click me!");
button1.addActionListener(e -> button1Click() );
panel1.add(button1);

exitButton = new JButton("Exit");
exitButton.addActionListener(e -> exitButtonClick() );
panel1.add(exitButton);
this.add(panel1);
按钮和退出按钮已经被声明为JButtons,我已经导入了javax.swing.*和java.awt.event.*。

我该如何解决这个问题?


e是什么?它是什么? - Anubian Noob
7
Java 8是否被设定为目标(或者说是“源”)语言? - user2864740
顺便提一下,你可以使用方法引用。确保你的button1Click(例如) 方法接受一个ActionEvent,然后只需将MyClass::button1Click传递给该方法即可。 - Boris the Spider
3
e是Java 8中lambda语法的一部分。在这种情况下,lambda表示我们正在创建一个ActionListener,其actionPerformed方法接受名为eActionEvent参数,然后执行->右侧的表达式。该表达式可以将e作为参数引用,但事件监听器通常不需要使用其参数。请参见有关lambda的此教程 - ajb
@ajb 哦,明白了,谢谢。 - Anubian Noob
2个回答

16

0
留下这里,因为我从谷歌来到这里并稍后修复了自己的错误:当您在lambda表达式中使用->时,而不是使用- >(也就是说,在两个字符之间加上一个空格),Java会认为您正在尝试使用--,此时也会引发Syntax error on token "-", -- expected错误。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接