gpt4 book ai didi

Java : Class wrapper using generic

转载 作者:行者123 更新时间:2023-12-01 23:14:55 26 4
gpt4 key购买 nike

我会以某种方式在 HashMap 中存储许多不同的类型,但在某种程度上,当我提取它们时,它们将是良好类型的(而不是对象)。

所以我考虑一个使用泛型的包装器

 public class Value <T>
{
private T innerValue ;

public Value ( T _value )
{
innerValue = _value ;
}

public T read ()
{
return innerValue ;
}
}

但它不起作用,对于我所做的测试:

 Value <Integer> va = new Value <Integer> ( 1 ) ;
Value vc = va ;
int restA = vc.read();

但我收到设计时错误,因为 vc.read() 将返回 Object() 而不是 Integer。那么我应该怎么做才能避免这种行为呢? (如果可能的话,我希望有一个解决方案可以防止“va”丢失有关 T 的信息,而不是其他解决方法)

预先感谢您的帮助。

最佳答案

您将 va 转换为原始 Valuevc。当您使用类的原始形式时,您的 T 泛型类型参数将被 Object 替换。因此,您不能将 Object 分配给 int

如果您只调用va.read(),那么它将返回一个Integer,在赋值时它将被拆箱为intrestA

关于Java : Class wrapper using generic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21393371/

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