怎么反射获取List 中泛型的类型
如何反射获取List<T> 中泛型的类型。
比如:
List<String> list = new ArrayList<String>();
如何根据反射 通过list 获取该List中泛型的类型。
------解决方案--------------------
参考。
------解决方案--------------------
http://bbs.****.net/topics/210017667
------解决方案--------------------
你可以自己判断下类型。
------解决方案--------------------
不用发射,这样判断就可以了。
------解决方案--------------------
------解决方案--------------------
这个list只能是成员变量或方法变量中才能获得他的泛型。
------解决方案--------------------
是的!
------解决方案--------------------
这个好办,真实运气了楼主你,最近我就研究这个东西
首先导入这个qdox-1.12.jar(你百度一下就搞定了)
然后这样: field.getType().getGenericValue() 就搞定了(看到结果你就知道怎么办了,不再解释)
比如:
List<String> list = new ArrayList<String>();
如何根据反射 通过list 获取该List中泛型的类型。
------解决方案--------------------
参考。
------解决方案--------------------
http://bbs.****.net/topics/210017667
------解决方案--------------------
你可以自己判断下类型。
------解决方案--------------------
不用发射,这样判断就可以了。
List list = new ArrayList();
list.add("test");
list.add(1);
for (Object object :list) {
if (object instanceof String) {
System.out.println("String");
}else if (object instanceof Integer) {
System.out.println("Integer");
}
}
------解决方案--------------------
public class GenericTest
{
public List<String> list = new LinkedList<String>();
public static void main(String[] args) throws SecurityException, NoSuchFieldException
{
ParameterizedType pt = (ParameterizedType) GenericTest.class.getField(
"list").getGenericType();
System.out.println(pt.getActualTypeArguments().length);
System.out.println(pt.getActualTypeArguments()[0]);
}
}
------解决方案--------------------
这个list只能是成员变量或方法变量中才能获得他的泛型。
------解决方案--------------------
是的!
------解决方案--------------------
这个好办,真实运气了楼主你,最近我就研究这个东西
首先导入这个qdox-1.12.jar(你百度一下就搞定了)
然后这样: field.getType().getGenericValue() 就搞定了(看到结果你就知道怎么办了,不再解释)