gpt4 book ai didi

java - Java使用反射创建泛型参数化类

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:44:08 25 4
gpt4 key购买 nike

如何使用反射在 Java 中创建通用参数化类?

我有

public class SomeClass<T> {
public SomeClass<T>() {
}
}

我需要它的一个实例。

我试过各种变体

Class c = Class.forName("SomeClass");

但找不到允许我获得适当类型实例的语法,例如

SomeType instance = (SomeType)Class.forName("SomeClass<SomeType>").createInstance();

那么,我该怎么做呢?

最佳答案

Java 使用基于删除的泛型(即,类型参数在运行时被删除——例如,List<Integer>List<String> 在运行时被视为相同类型)。由于反射本质上是一种运行时功能,因此根本不使用或不涉及类型参数。

换句话说,当您使用反射时,您只能实例化原始类型( SomeClass ,而不是 SomeClass<T> )。然后,您必须手动将类型转换为通用版本(并生成 unchecked 警告)。

关于java - Java使用反射创建泛型参数化类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6373800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com