锁定老帖子 主题:Java获得泛型类型
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-10-22
如果是方法 可以用 getGenericParameterTypes 得到带泛型的类型
|
|
返回顶楼 | |
发表时间:2010-10-26
以前用的获取泛型的一个方法,可恶意处理多级泛型和泛型数组。
/** * 取得范性信息 * * @param cls * @param i * @return */ private Class<?> getGenericClass(Class<?> cls, int i) { ParameterizedType parameterizedType = ((ParameterizedType) cls.getGenericInterfaces()[0]); Object genericClass = parameterizedType.getActualTypeArguments()[i]; if (genericClass instanceof ParameterizedType) { // 处理多级泛型 return (Class<?>) ((ParameterizedType) genericClass).getRawType(); } else if (genericClass instanceof GenericArrayType) { // 处理数组泛型 return (Class<?>) ((GenericArrayType) genericClass).getGenericComponentType(); } else { return (Class<?>) genericClass; } } |
|
返回顶楼 | |