gpt4 book ai didi

java - 如何在 Java 中编写泛型方法以支持比较和算术运算

转载 作者:搜寻专家 更新时间:2023-10-31 19:34:51 25 4
gpt4 key购买 nike

我想在 java 中编写一个泛型方法,如下所示:

public <T extends Number & Comparable<T>> void test(T[] a){
T b=a[0];
if(a[0]>0){
a[0]*=a[0];
b+=a[1];
}
}

然后,我可以为该方法提供 Integer[]Double[] 或其他 Number 子类型。但是我上面尝试的代码给了我错误。

请帮帮我。谢谢。

最佳答案

除基元外的所有类型(包括推断的泛型类型)都是不支持算术运算的对象(包装类使用装箱/拆箱来获得已知的伪行为)

类型删除使编译后的代码使用强制转换来获得正确的行为(即在运行时 JVM 不知道传递的是什么类型,它需要知道才能获得正确的装箱/拆箱行为)

唯一(真正的)解决方案是为您想要支持的所有原语提供实现

关于java - 如何在 Java 中编写泛型方法以支持比较和算术运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8581416/

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