`
tianlihu
  • 浏览: 311072 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

Java 反射 获取范型中的参数

阅读更多
近日,需要用Annotation(注解)来实现对象的数据Copy。但是有些字段是List或Map,这时就到取到List或Map的范型参数。查找一下JDK类,果真能取出来,记录如下:

1. 模型类
public class Model {

	private List<String> list;

	public List<String> getList() {
		return list;
	}

	public void setList(List<String> list) {
		this.list = list;
	}
}


2. 解析类
import java.lang.reflect.Field;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class ModelParser {

	public static void main(String[] args) throws Throwable {
		Field field = Model.class.getDeclaredField("list");
		Type type = ((ParameterizedType) field.getGenericType()).getActualTypeArguments()[0];
		System.out.println(type);
		System.out.println(type == String.class);
	}
}


结果是:
class java.lang.String
true
0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics