检查java中列表类的类型

时间:2016-03-15 11:27:21

标签: java class generics

鉴于我有一个

Class<?> clazz

我想验证clazz是否是我的特定对象列表

所以我从

开始
if (List.class.isAssignableFrom(type)) {

}

但直到这里我才核实它是List<?>。我该如何验证它是List<String>

1 个答案:

答案 0 :(得分:7)

你不能。由于泛型的性质,在运行时类型信息被擦除。如果您有一个空List,则无法确定。如果它不是空的,您可以检查第一个元素,看它是否为String。这当然不会告诉它是List<String>List<CharSequence>还是原始列表。

如果你得到这些信息,你打算怎么做?这肯定是一种更好的方法。