java获取泛型类型
2014-07-02 14:48
302 查看
package com.example.test;
import java.lang.reflect.Array;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class Generic extends Base<String> {
public static void main(String[] args) {
Generic c = new Generic();
System.out.println(c.array);
}
Object array;
public Generic() {
array = Array.newInstance(getGenericType(0), 100);
}
}
class Base<T> {
public Class getGenericType(int index) {
Type genType = getClass().getGenericSuperclass();
if (!(genType instanceof ParameterizedType)) {
return Object.class;
}
Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
if (index >= params.length || index < 0) {
throw new RuntimeException("Index outof bounds");
}
if (!(params[index] instanceof Class)) {
return Object.class;
}
return (Class) params[index];
}
}
import java.lang.reflect.Array;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
public class Generic extends Base<String> {
public static void main(String[] args) {
Generic c = new Generic();
System.out.println(c.array);
}
Object array;
public Generic() {
array = Array.newInstance(getGenericType(0), 100);
}
}
class Base<T> {
public Class getGenericType(int index) {
Type genType = getClass().getGenericSuperclass();
if (!(genType instanceof ParameterizedType)) {
return Object.class;
}
Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
if (index >= params.length || index < 0) {
throw new RuntimeException("Index outof bounds");
}
if (!(params[index] instanceof Class)) {
return Object.class;
}
return (Class) params[index];
}
}
相关文章推荐
- java 通过反射获取泛型的类型
- java基础-反射 --通过反射 获取泛型实际类型参数
- java 通过反射获取泛型的类型
- Java反射通过class获取父类泛型类型
- java 通过反射获取泛型的类型
- Java获取泛型参数的类型的方法 .
- ParameterizedType获取java泛型参数类型
- java 获取 泛型类型(接口及超类)
- ParameterizedType获取java泛型参数类型
- java获取泛型的实际类型
- java 多个泛型的类型获取方法
- java 中获取泛型类型
- java 通过反射获取泛型的类型
- java获取泛型参数实际类型
- Java获取泛型参数的类型的方法
- java获取泛型类型
- 获取java泛型参数类型
- java 通过反射获取泛型的类型
- java中通过反射获取泛型的参数类型
- 如何获取java中泛型参数的实际类型--反射获取