【问题标题】:Compiler compliance level in EclipseEclipse 中的编译器合规性级别
【发布时间】: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.ActionEventjavafx.event.ActionEvent。我假设第一个是你需要的。如果您导入第二个,那么您最终可能会收到这样的错误消息。
  • 如果您指的是有问题的答案“Why do I get “must override a superclass method” with @Override?”,那么他们指的是升级合规级别从 1.5 到 1.6(或更高版本)。您应该将合规级别设置为与您使用的 java 相同的版本,因此它应该是 1.8,而不是 1.6。

标签: java eclipse java-8


【解决方案1】:

发现我需要将 Eclipse 中的编译器合规级别设置为 1.6

不,您不需要这样做,而且很可能这是一个非常糟糕的主意。将编译器合规级别设置为 1.6 会指示您的现代 Java 编译器假装它是旧的 Java 6 编译器。这意味着无需修改旧代码即可使用新语言版本,但这也意味着您将无法使用过去 15 年添加到 Java 语言中的任何语言功能。强>。这听起来像是要付出非常高昂的代价,以避免不得不稍微调整旧代码以在新的 Java 版本下编译。

【讨论】:

    猜你喜欢
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 2012-01-30
    • 1970-01-01
    • 2013-12-22
    相关资源
    最近更新 更多