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);
}总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论