📜  从泛型类型 java 中获取类(1)

📅  最后修改于: 2023-12-03 15:22:00.842000             🧑  作者: Mango

从泛型类型 java 中获取类

在 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 开发中不可或缺的一部分。