什么可能是 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;
阅读 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;