Java反射,获取泛型类参数的名称

时间:2016-04-18 22:15:21

标签: java class generics reflection parameters

我想获得一个类的泛型参数的名称。 例如:

public class A<B> {
...
}

in 这个类我想要B类的名字。喜欢:

A<Solution> var = new A<Solution>();

我希望有一种方法可以在A

的方法中使用String“Solution”

如果你有任何想法我在这里:)

谢谢!

1 个答案:

答案 0 :(得分:3)

您需要将Class实例作为构造函数参数传递:

class A<B> {
  private final Class<B> clazz;

  A(Class<B> clazz) {
    this.clazz = clazz;
  }

  String getName() {
   return clazz.getSimpleName();
  }
}

A<Solution> var = new A<>(Solution.class);