如何反射获取List<T> 中泛型的类型。 http://bbs.csdn.net/topics/210017667 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个问题和我的问题还是有区别的 。 这个问题是获取集合里面元素的类型。 我现在的问题是这样的:public void test01(List list){ // 打印List中泛型的类型}比如 List<String> list01 = new ArrayList<String>();test01(list01);应该打印String 类型 List<Integer> list02 = new ArrayList<Integer>();test01(list02);应该打印Integer类型 不用发射,这样判断就可以了。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() 就搞定了(看到结果你就知道怎么办了,不再解释) 试试这个:List<T> list = new ArrayList<T>(0); Method method = list.class.getMethod("get",null); Class returnTypeClass = method.getReturnType(); returnTypeClass就是返回类型了 学习JAVA一年多的困惑 关于jsp在往数据库中插入当前日期时间的问题 很诡异的异常 父子关系表的持久化问题 在线web 客服系统 如何在Eclipse中编写代码调用xml schema文件来动态生成xml document? GlassFish中如何禁止通过浏览器直接打开WEB应用程序中的目录? tomcat client deployer 求例子文件 困扰多时了,请求高人告知! 求用java开发的界面控制小程序,100分奉上............急等 jdbc查询数据库 如何得到树结构的数据呢 公交查询系统的设计与实现 如何收集所有城市的公交线路信息
这个问题和我的问题还是有区别的 。
这个问题是获取集合里面元素的类型。
我现在的问题是这样的:public void test01(List list){
// 打印List中泛型的类型
}比如
List<String> list01 = new ArrayList<String>();
test01(list01);
应该打印String 类型
List<Integer> list02 = new ArrayList<Integer>();
test01(list02);
应该打印Integer类型
不用发射,这样判断就可以了。
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 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]);
}
}
首先导入这个qdox-1.12.jar(你百度一下就搞定了)
然后这样: field.getType().getGenericValue() 就搞定了(看到结果你就知道怎么办了,不再解释)
Method method = list.class.getMethod("get",null);
Class returnTypeClass = method.getReturnType();
returnTypeClass就是返回类型了