问题背景
在 IntelliJ IDEA 开发 Java 项目时,偶尔会碰到编译报错提示 No interface expected here。看到这个错误不要慌,它通常意味着你在类声明或泛型约束中混淆了继承(extends)与实现(implements)的用法。
原因分析
Java 语言规范中,类与类之间使用 extends 进行继承,而类与接口之间必须使用 implements 来声明实现关系。如果编译器期望看到一个接口定义的位置却出现了其他语法结构,或者该用 implements 的地方误用了 extends,就会触发此错误。
解决方案
检查报错行附近的类定义,确认被继承的对象是否为接口。如果是接口,请将关键字从 extends 修改为 implements。
错误写法:
public class MyService extends MyInterface {
// ...
}
正确写法:
public class MyService implements MyInterface {
// ...
}
修改后重新编译即可通过。建议养成习惯,在定义类实现接口时,IDEA 通常会给出快速修复建议,留意右下角的红色波浪线提示。
小结
这类错误属于基础语法范畴,多注意关键字的使用场景即可避免。遇到编译问题时,优先关注 IDE 给出的具体错误位置和类型提示,往往能迅速定位问题根源。


