【发布时间】:2020-03-31 15:51:20
【问题描述】:
我使用的是 JDK 1.8 版本。并导入了一些已经编写好的代码。出现如下错误
The method actionPerformed(ActionEvent) of type new ActionListener(){} must override a superclass method
谷歌搜索,发现我需要设置Compiler compliance level in Eclipse to 1.6 并解决问题。
有两个疑问
1) 如果我设置 1.6,我的 1.8 jdk(安装在我的机器上)如何能够生成 1.6 版本的文件并运行它? 1.8能不能产生1.6版本的java文件也能运行?
2) 更高级别的合规级别是否可以处理更低的版本,因为它是从低到高派生的?如果是,那么为什么它甚至需要更改合规级别,如果可以处理?
我的怀疑有意义吗?
【问题讨论】:
-
不要相信你在网上找到的一切。它可能描述了一个完全不同的问题。无论如何,请确保您正在导入正确的
ActionEvent类。 Java 8 中有两个:java.awt.event.ActionEvent和javafx.event.ActionEvent。我假设第一个是你需要的。如果您导入第二个,那么您最终可能会收到这样的错误消息。 -
如果您指的是有问题的答案“Why do I get “must override a superclass method” with @Override?”,那么他们指的是升级合规级别从 1.5 到 1.6(或更高版本)。您应该将合规级别设置为与您使用的 java 相同的版本,因此它应该是 1.8,而不是 1.6。