通过反射机制,获得实际绑定的类型
泛型反射的关键是获取ParameterizedType,再调用它的getActualTypeArguments()方法获得实际绑定的类型
比如:
java 代码
- package test;
- import java.lang.reflect.ParameterizedType;
- import java.lang.reflect.Type;
- public class Parent<t></t><t></t> < T >{
- public void call(){
- Class clazz = getClass(); //实际子类clazz
- Type genType = clazz.getGenericSuperclass();
- Type[] params = ((ParameterizedType) genType).getActualTypeArguments();
- Class domainClass = (Class) params[0];
- }
- }
java 代码
- package test;
- public class Child extends Parent <A>{
- }
java 代码
- package test;
- public class A {
- public String name;
- public String passwd;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPasswd() {
- return passwd;
- }
- public void setPasswd(String passwd) {
- this.passwd = passwd;
- }
- }
java 代码
- package test;
- public class Test {
- public static void main(String[] args){
- Child child = new Child();
- child.call();
- }
- }
本文介绍如何使用Java反射机制获取泛型的实际绑定类型。通过获取ParameterizedType并调用getActualTypeArguments()方法,可以得到泛型参数的具体类型。文中通过具体的代码示例展示了这一过程。
799

被折叠的 条评论
为什么被折叠?



