有人可以举一个具体的例子来说明 JLS (§8.7) 中以下文本的含义吗?
It is a compile-time error if [...] any type variable declared outside the static initializer, appears anywhere within a static initialiser.
导致错误的原因是什么?
最佳答案
类型变量
是类使用的非限定标识符。类的实例可能有不同的实际类型来替代类型变量。类型变量仅适用于类的实例。因此,不能在同一个类的静态上下文中引用它们。这是此错误的一个示例:
import java.util.*;
public class Test<N> {
static { List<N> p = new ArrayList<>(); }
}
关于java - 在静态初始值设定项外部声明的类型变量在静态初始值设定项内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29904418/