Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
lista.add(obj)和list中出错<;obj>;JAVA_Java_List_Object_Initialization_Initializer List - Fatal编程技术网

lista.add(obj)和list中出错<;obj>;JAVA

lista.add(obj)和list中出错<;obj>;JAVA,java,list,object,initialization,initializer-list,Java,List,Object,Initialization,Initializer List,我试图用Java解决列表的一个问题,但我做不到。我有以下代码: Productos producto = ... //come from a database, here there isn't errors List<Productos> lista = new ArrayList<Productos>(); lista.set(0,producto); 是的,对Int进行了“错误转换”看起来是个错误,但我不认为..这是我代码的一部分: EntityMan

我试图用Java解决列表的一个问题,但我做不到。我有以下代码:

Productos producto = ... //come from a database, here there isn't errors

List<Productos> lista = new ArrayList<Productos>();

lista.set(0,producto);    
是的,对Int进行了“错误转换”看起来是个错误,但我不认为..这是我代码的一部分:

EntityManager em = entityManagerFactory.createEntityManager();
.
.
int id = Integer.parseInt(request.getParameter("IdProd"));
Productos producto = em.find(Productos.class,id);
HttpSession session = request.getSession(false);

if(session.getAttribute("carProductos")==null){
    List<Productos> lista = new ArrayList<Productos>();
    lista.add(producto);
    session.setAttribute("carProductos", lista);
}else{
    List<Productos> lista = (List<Productos>) session.getAttribute("carProductos");
    lista.add(producto);
    session.setAttribute("carProductos", lista);
}
EntityManager em=EntityManager工厂。createEntityManager();
.
.
intid=Integer.parseInt(request.getParameter(“IdProd”);
Productos producto=em.find(Productos.class,id);
HttpSession session=request.getSession(false);
if(session.getAttribute(“carProductos”)==null){
List lista=new ArrayList();
添加(producto);
session.setAttribute(“carProductos”,lista);
}否则{
List lista=(List)session.getAttribute(“carProductos”);
添加(producto);
session.setAttribute(“carProductos”,lista);
}

我已经在Eclipse中完成了调试,“IdProd”是5,“id”也是5。现在它看起来像“lista”捕获“producto”并自我介绍,但当它位于底部时,突然显示出错误和崩溃。在这段代码之后,我不再使用“lista”或“producto”。有人能帮我吗?

下面是java.util.ArrayList.add()方法的声明 公共void add(int索引,E元素)

所以使用

lista.add(0, producto)

列表中的
set
方法在将元素设置在不在
0
size()-1
之间的位置时引发错误。在空的
列表
上,您永远不能
设置元素。发件人:

抛出: IndexOutOfBoundsException-如果索引超出范围(索引<0 | |索引>=size())

我想你要做的是在列表中添加一个元素;由于
列表
为空,因此唯一有效的位置为零:

lista.add(producto);

add
方法将元素添加到列表的末尾。如果是空列表,它将添加元素作为唯一的元素。

请告诉我们确切的文字错误。它是如何工作的?
producto
null?您是否尝试过lista。添加(0,producto)原始注释与添加集不匹配。哇,您注意到我的错误的速度比我修改注释的速度快-很抱歉造成混淆。@SirRichie,我希望这是最后一次这样做-开玩笑。感谢您的评论欢迎来到bufferOverflow!谢谢你们!lista.add(0,producto)无法工作,因为lista未初始化。。
lista.add(producto);