我最近开始阅读Oracle的Java教程,我不确定它是否是最新的
在匿名课中,它是这样写的:
匿名类也具有与本地类相同的限制相对于其成员:
- 不能在匿名类中声明静态初始化器或成员接口。
一个匿名类可以有静态成员,只要他们是常量变量。
我做了一些测试,看起来这不是真的。使用Jdoodle的Java编译器,我运行:
public class MyClass {
public static void main(String args[]) {
A a = new A() {
static {
int c = 1;
}
// Or this one
//static int c = 1;
};
}
}
class A {}
在除JDK 17之外的每个版本中抛出错误。是我误解了什么,还是甲骨文没有更新它的教程?如果是,为什么?
我试着在谷歌上搜索Java 17的变化,但是我找不到任何关于它的信息。
在这个oracle Java教程文档链接的第一页中,您将看到该文档适用于JDK 1.8:
Java教程是为JDK 8编写的。例子和实践本页所描述的并没有利用所介绍的改进在以后的版本中,可能会使用不再可用的技术。