检查java中列表类的类型

man*_*her 4 java generics class

鉴于我有一个

Class<?> clazz
Run Code Online (Sandbox Code Playgroud)

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

所以我开始

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

}
Run Code Online (Sandbox Code Playgroud)

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

Kay*_*man 7

你不能.由于泛型的性质,在运行时类型信息被删除.如果你有空List,你无法确定任何事情.如果它是非空的,你可以检查第一个元素,看看它是否为a String.那当然不会告诉它是否是一个List<String>,List<CharSequence>或原始列表.

如果你得到它,你打算如何处理这些信息?必然会有更好的方法.