public class TT2 { public static void main(String[] args) { AA aa = new AA() { }; AA.BB ab= aa.new BB(){}; } } interface AA{ interface BB{} }请告诉我这段代码为什么报错
时间: 2024-03-23 07:41:11 浏览: 59
这段代码报错是因为在使用 `aa.new BB(){}` 创建一个 `AA` 接口中的嵌套 `BB` 接口的匿名实现类时,需要提供 `BB` 接口中的所有方法的具体实现,否则会导致编译错误。
在这段代码中,`BB` 接口没有任何方法,所以我们不需要在匿名实现类中提供任何方法的具体实现。因此,我们可以直接创建一个空的匿名实现类,如下所示:
```
public class TT2 {
public static void main(String[] args) {
AA aa = new AA() {
};
AA.BB ab = aa.new BB() {
};
}
}
interface AA {
interface BB {
}
}
```
这样就不会报错了。
阅读全文