gpt4 book ai didi

Java:从具有指定类型的泛型类扩展

转载 作者:行者123 更新时间:2023-11-30 03:31:36 26 4
gpt4 key购买 nike

我正在尝试扩展一个通用类,例如:

public class GenericClass<T> implements GenericClassInterface<T>
{
public T myMethod(String typeID) {
T test = _get_test_value_; // here I use jackson to retrieve T de-serialized from JSON
return T;
}
}

然后我扩展该类:

public class SpecificClass extends GenericClass<CustomType> implements SpecificClassInterface
{
public CustomType getIstance(String typeID) {
return super.myMethod(typeID);
}
}

代码编译正确,但是当我调试时,我发现当从 SpecificClass 调用 myMethod 时,类型 TObject,而不是 CustomType,即使我在 SpecificClass 中扩展 GenericClass 时指定了 CustomType

怎么会呢?这是 Java 中泛型的限制吗?

最佳答案

类型参数T在运行时(调试期间)不可用。这确实是 Java 中泛型的限制,称为类型删除。 (正如您所观察到的,所有类型参数都将转换为 Object。)

看例子

关于Java:从具有指定类型的泛型类扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28875270/

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