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

标签 java class generics reflection parameters

我想获取类的泛型参数的名称。 例如:

public class A<B> {
...
}

并且这个类(class)中我想要B类的名称。例如:

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

我希望有一种方法可以将字符串“Solution”放在 A 的方法中的某处

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

谢谢!

最佳答案

您需要将 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);

关于Java反射,获取泛型类参数的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36705246/

相关文章:

java - 调用泛型类型实例方法

java - 如何在java中反向乘以有符号除法字节数组?

java - 选择何时实例化类

java - Java 9 中不推荐使用 Observer。我们应该使用什么来代替它?

c++ - 如何管理不同类中原始指针和 unique_ptr 的混合使用? (异常(exception)?)

Android:通过单击按钮将文本添加到不同 xml 布局中的 TextView

c++ - 二叉搜索树分割错误

java - 继承的一般混淆——Java

java - Jodatime - 定制年表

c# - T 实现 Interface<T> 的通用方法