我有基本接口:
public interface Doable {
void doAction(String str);
}我有扩展接口:
public interface DoubleDoable extends Doable{
@Override
default void doAction(String str) {
doOnce();
doOnce();
}
void doOnce();
}我有一个实现:
public class Action implements DoubleDoable {
public void doOnce() {
System.out.println(123);
}
}但是,它没有编译,如:Error:(10, 8) java: Action is not abstract and does not override abstract method doAction(java.lang.String) in Doable
我做错了什么吗?
发布于 2017-11-11 11:52:07
如果您使用的是Java8编译器,那么代码导致编译错误的唯一方法是将传递给编译器的-source标志的值设置为1.7或更低。
类似于:
javac -source 1.7 ...如果您使用的是maven,下面的属性设置将产生同样的效果。
<maven.compiler.source>1.7</maven.compiler.source>发布于 2017-11-11 11:30:50
您不能调用方法do,因为它是java保留字。所有的Java关键字列表都可以找到这里。
https://stackoverflow.com/questions/47237372
复制相似问题