java - 如何将参数化类作为参数传递

标签 java generics

我的目标是开发一个可以输出指定类的对象的类。

public class GetMe<T> {
    public T get() {
        Object obj = generateObject();
        return (T) obj;
    }
}

现在,我知道由于删除,这是不可能的。因此,我们可以传入一个类实例并使用它来进行转换。

public class GetMe<T> {
    public GetMe<T>(Class<T> clazz) {
        this.clazz = clazz;
    }

    public T get() {
        Object obj = generateObject();
        return clazz.cast(obj);
    }
}

这很好用!只要类没有参数化。如果是,那我就有问题了。

我不允许使用 List<String>.class .如果我传入一个 ParameterizedType(它本身很难生成),则没有 cast使用方法。

有没有办法走出这个泥潭?

最佳答案

我认为super type tokens可能会为您解决这个问题。

关于java - 如何将参数化类作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4980011/

相关文章:

java - 从嵌套泛型推断泛型类型参数

java - 如何访问参数的参数?

java - 从 ComboBox JavaFX 中删除滚动条

java - 在不使用线程的情况下实现此寻路代码的好方法是什么?

java - 对java中的 `toArray(T[] a)`方法感到困惑

swift - 如何在 Swift 中实现泛型转换初始化器?

java - Java 中的常量数组

Java反编译器

java - 什么时候需要为集合指定泛型类型?

java - 当使用 Bounded 类型参数或直接类型接口(interface)时