什么可能是 ParameterizedType 的实例?

What may be an instance of ParameterizedType?

阅读 ParameterizedType 接口的文档后,我认为 ParameterizedType 实例的示例可以是任何参数化类型,例如我代码中的 col

  public class a0 {

     public static void main(String[] args) {

        Collection<String> col = new ArrayList<String>();
        col.add("a");
        col.add("b");
        col.add("c");

        assert col instanceof ParameterizedType; // line No. 10
     }
  }

但我明白了:

Exception in thread "main" java.lang.AssertionError
at a0.main(a0.java:10)

因此,ParameterizedType 的实例可能是什么?

我想知道这个,因为我正在尝试理解一个更大的程序,其中有这样一个片段:

public static void printType(Type type) {
...
if (type instanceof ParameterizedType) {
... }
}

但我不知道 if 语句中的条件何时为真..

一个ParameterizedType是反射类型,表示一个参数化类型。参数化类型本身不是 class.

的实例

同理,一个Field实例用来表示某个类型的class成员字段。这并不意味着这样的字段将是 Field.

的实例

ParameterizedType 的示例如下:

Type[] genericInterfaces = col.getClass().getGenericInterfaces();
Type type = genericInterfaces[0];

assert type instanceof ParameterizedType;