java获取泛型参数
对于一个基本的类
public class basedao<t>{ t findone() { return t; } }
它的子类
public class studentdao extends basedao<studentdao.student>{ public static class student{ } }
如何获得当前类对应的泛型参数呢?
方法一 jdk
public static void main(string[] args) throws exception { // 可以拿到带有泛型信息的父类 type genericsuperclass = studentdao.class.getgenericsuperclass(); // 这里要判断一手如果你的父类确实有泛型信息 if (genericsuperclass instanceof parameterizedtype parameterizedtype) { type[] typearguments = parameterizedtype.getactualtypearguments(); system.out.println(typearguments[0]); } }
方法二 spring提供的方式
通过generictyperesolver获得.
public static void main(string[] args) throws exception { class<?> t = generictyperesolver.resolvetypeargument(studentdao.class, basedao.class); system.out.println(t); }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论