0

谁能举一个具体的例子来说明 JLS(第 8.7 节)中的以下文本是什么意思?

如果 [...] 在静态初始化程序之外声明的任何类型变量出现在静态初始化程序内的任何位置,则会出现编译时错误。

使它成为错误的原因是什么?

4

1 回答 1

4

Atype variable是类使用的非限定标识符。类的实例可能有不同的实际类型替代类型变量。类型变量仅适用于类的实例。因此,它们不能在同一类的静态上下文中被引用。这将是此错误的一个示例:

import java.util.*;
public class Test<N> {
  static { List<N> p = new ArrayList<>(); }
}
于 2015-04-27T19:42:36.010 回答