gpt4 book ai didi

java - 插入通用 Number ArrayList Java

转载 作者:行者123 更新时间:2023-11-29 10:05:39 24 4
gpt4 key购买 nike

我有以下方法:

  private <E extends Number> void AddOne(ArrayList<E> al, Double num) {
al.add(num);
}

al.add(num) 不起作用。将数字插入通用数字数组的最佳方式是什么?

所以基本上,我有一个通用的

ArrayList< E > al

我想在里面插入一个数值,我该怎么做呢? (我记得 C++ 容易多了 -_-)

最佳答案

你不能向这个列表中添加任何东西,因为你不知道它到底是什么类型。

像这样考虑继承树:

Number
|
|- BigInteger
|
|- NonNegativeInteger
|
|-PositiveInteger

你说你的列表是继承自 Number 的元素列表.好的,假设您想添加 Number到一个列表,但等等你可以有 List<BigInteger>你不能放Number进去。

好的,所以你可以输入 BigInteger , 正确的?不!因为您的列表可能是 List<NonNegativeInteger> .故事还在继续……

将列表声明为 List<T extends SomeObject>确保你从列表中得到的东西是 SomeObject 类型的.其他一无所知。

那么如何避免这个问题呢?只需删除模板即可。

List<Number>

现在您可以放置​​任何继承自 Number 的内容.

或者,您的情况更好,更改 DoubleE :

private <E extends Number> void AddOne(ArrayList<E> al, E num) {
al.add(num);
}

关于java - 插入通用 Number ArrayList Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9069988/

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