gpt4 book ai didi

java - 当参数作为通用 ArrayList 传递时如何添加

转载 作者:行者123 更新时间:2023-11-29 06:40:38 25 4
gpt4 key购买 nike

我有一个接受通用 ArrayList<?> 的函数作为参数之一,我发现当我尝试使用 ArrayList 的添加方法时出现 Java 错误

no suitable method found for add(MyClass)

我想要完成的是为类和 ArrayList 传递参数,并让函数用类的对象填充 ArrayList。不过,如果我可以改为从我的函数创建并返回 ArrayList,那也很好(少一个参数会很好)。

这里有一些代码来说明我目前是如何尝试解决这个问题的:

public void myFunction(Class clazz, ArrayList<?> myList)
{
Object myObject=null;
try{myObject = clazz.newInstance();}catch(Exception e){}
myList.add(myObject);
}

...或者可能是这样的:

public ArrayList<?> myFunction(Class clazz)
{
ArrayList<clazz> myList = new ArrayList<clazz>();
Object myObject=null;
try{myObject = clazz.newInstance();}catch(Exception e){}
myList.add(myObject);
}

如果有人可以请:

a) 给我看一些执行此操作的代码
b) 解释如何使用泛型实现我的目标
或 c) 让我知道哪里出了问题并提供替代方法

最佳答案

为了给 ArrayList 添加一些东西,你需要让它的类型定义是逆变的。

有点像

public <T> void doSomething(...,List<? super T> args,...) 

会起作用。

关于java - 当参数作为通用 ArrayList<?> 传递时如何添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12769591/

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