And*_*niy 18 java javac nosuchfieldexception java-9
用Java编写的-9是运行下面的代码给了我一个非常奇怪和有趣的异常运行时:
Exception in thread "main" java.lang.NoSuchFieldError: super
at A$C.test(A.java:15)
at A.main(A.java:5)
Run Code Online (Sandbox Code Playgroud)
代码:
public class A {
public static void main(String[] args) {
new C().test();
}
interface B {
private void test() {
}
}
static class C implements B {
void test() {
B.super.test();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想知道:它是这样设计的,还是理想情况下这个代码不应该被编译,因此这是一个编译器错误?(我个人认为这是一个错误).
UPD:提交了一个错误,ID:9052188
UPD-2:它看起来B.super.test()通常是一个有效的结构,因为如果test()方法default比它工作正常.这个事实让事情变得更加复杂.
And*_*niy 10
最后,这个问题被Java开发人员支持团队认为是一个错误,这里有一个链接:https://bugs.java.com/bugdatabase/view_bug.do?video_id = JDK- 8194847
| 归档时间: |
|
| 查看次数: |
557 次 |
| 最近记录: |