如何使用Java反射获取类型参数值?

mik01aj:
interface Foo<T> { ... }
class Bar implements Foo<Baz> { ... }

我有一个Bar对象。如何获得它的价值TBaz)?

到目前为止,我只设法获得了和的接口T,但是我看不到获得其价值的方法。

提前致谢。

博zh:
Type type = bar.getClass().getGenericInterfaces()[0];

if (type instanceof ParameterizedType) {
    Type actualType = ((ParameterizedType) type).getActualTypeArguments()[0];
    System.out.println(actualType);
}

当然,在一般情况下,您应该遍历数组,而不是假定数组有一个元素([0])。在上面的示例中,您可以转换actualTypejava.lang.Class在其他情况下,可能会有所不同(请参阅meriton的评论)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用反射获取Java中通用参数的类型

Java反射:获取方法的返回参数的类型

如何使用Java反射获取参数名称

使用livewire从URL获取类型参数值

如何在具有泛型参数和返回类型方法的Java中使用反射获取类的实例?

Java:获取嵌套参数化类型的内部类型(反射)

使用反射从Java类获取类型类

使用Java反射获取类数组的类型

如何使用反射获取声明的类型

如何使用反射包获取chan的类型

如何使用反射递归获取类型的属性?

如何通过Scala / Java方法中的反射获取参数名称和类型?

如何从Java Servlet获取参数值

如何使用JSP从URL获取参数值

如何使用getopts获取参数值

使用反射获取具有原始类型参数的类的方法

如何使用Scala反射查找返回类型参数的方法的类型?

如何根据参数的类型做不同的事情(不使用反射)?

如何使用反射基于参数类型选择方法?

如何通过Java中的反射获取方法参数的值?

使用Java反射获取方法的类型化返回

标量反射,获取超类的类型参数

如何使用Scala反射仅获取主要的构造函数参数?

如何使用反射获取基本构造函数调用参数

如何使用反射获取以List <SomeObject>作为参数的方法

如何使用反射获取Func <T>的返回类型?

如何使用反射从动态(匿名类型)对象获取属性?

如何使用反射获取调用方法的名称和类型?

如何使用反射获取特定类型的通用列表