📅  最后修改于: 2023-12-03 15:22:00.842000             🧑  作者: Mango
在 Java 中,我们可以使用泛型来编写可重用的代码。泛型类型是一种通用的类型,其中包含一个或多个类型参数。在编写泛型代码时,我们可能需要获取泛型类型中的实际类。这可以通过反射来实现。
在以下示例中,我们将演示如何使用反射从泛型类型中获取实际类。
public class Example<T> {
private T item;
public Example(T item) {
this.item = item;
}
public void printClass() {
Class<?> clazz = item.getClass();
System.out.println(clazz.getName());
}
}
以上示例代码定义了一个 Example
类,它使用了泛型类型 T
。在构造函数中,它接受一个类型为 T
的参数,并将其存储在一个私有属性中。
Example
类还定义了一个 printClass
方法,它使用反射获取存储在私有属性中的对象的实际类,并将其名称打印到控制台中。
以下代码演示如何使用 Example
类从泛型类型中获取实际类。
Example<String> example = new Example<>("Hello World");
example.printClass();
在上面的代码中,我们创建了一个 Example
类的实例,并传递了字符串 "Hello World"
作为参数。然后,我们调用 printClass
方法,它将打印字符串 "java.lang.String"
,这是 Example
实例的存储类型。
通过反射从泛型类型中获取实际类非常有用,特别是在一些需要动态获取类型信息的场景中。无论是开发库还是应用程序,反射机制都是 Java 开发中不可或缺的一部分。