这可能听起来很傻,但是,从List转换为数组时出现此错误:
ArrayStoreException:null
我现在使用的代码是:
public void onSuccess(List<Agent> resultList) {
Agent[] array = new Agent[resultList.size()];
resultList.toArray(array);
代理一个我用自己的字段定义定义的类,所有这些都是私有的最终字符串
但我不知道我可能会错过什么。
提前感谢您的帮助。
亲切的问候,
答案 0 :(得分:1)
您可能正在将 ArrayList&lt; Agent&gt; 传递给某些方法 只有一个 ArrayList 或 List 参数(无类型)。这种方法 可以通过编译但在运行时搞砸了。示例如下。
如果您在我的示例中注释掉对messUp的调用,那么事情就可以了。 但是messUp可以将不是Agent的东西添加到你的列表中, 并以这种方式引起问题。
这是我最好的猜测,但没有看到你的代码。
希望它有所帮助。
import java.util.ArrayList;
import java.util.List;
public class Test009 {
public static void main(String[] args) {
List<Agent> resultList = new ArrayList<Agent>();
resultList.add(null);
resultList.add(new Agent1());
resultList.add(new Agent());
messUp(resultList);
test(resultList);
}
private static void messUp(List lst){
lst.add("123");
}
public static void test(List<Agent> resultList){
Agent[] array = new Agent[resultList.size()];
resultList.toArray(array);
System.out.println("done");
}
}
class Agent {
protected int x;
}
class Agent1 extends Agent{
protected int y;
}
附加说明:好的,好吧,这不解释 错误消息的“null”部分。 所以根本原因有些不同。