1
interface G {
    default void print() {
        System.out.println("G");
    }
}
class M {
    public void print() {
        System.out.println("M");
    }
}
class GImpl extends M implements G {}
public class Wierd {
    public static void main(String[] args) {
        G g=new GImpl();
        g.print();
    }
}

我试图在界面中使用默认方法,但是当使用 Eclipse 编译时,我在第 2 行出现错误 - 说删除默认值,但我使用命令提示符编译并运行它运行正常,这可能是什么原因?

4

2 回答 2

2
  • 您的 Eclipse 仍然没有使用Java8版本,请检查它可能小于 8。
  • 用来System.out.println(System.getProperty("java.runtime.version"));检查。
  • 您可能还需要在 Eclipse 中更改项目的构建路径和编译器级别。

更重要的是:

安装 Java™ 8 支持。

于 2014-07-04T12:27:10.667 回答
1

似乎您已经安装了 Java 8 JDK,但您的 Eclipse 仍然不支持 Java 8。Eclipse Luna支持 Java 8。更改编译器选项右键单击您的项目>属性>Java 编译器>选中“启用项目特定设置” >然后选择编译器合规级别。在此处输入图像描述

于 2014-07-04T12:44:26.150 回答