我正在尝试解决Java中的List的问题,但不能。我有以下代码:

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

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

lista.set(0,producto);


而且我不能在列表中加入“ producto”,也不知道为什么。我也使用"lista.add(producto)"尝试过,但是它不起作用。我能做什么?

Edit1:Producto不为null,它已初始化并且具有一些具有正确值的属性。我也使用了lista.add(0,producto),但是它没有用:(。错误是:

Grave: java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Integer.java:454)
at java.lang.Integer.parseInt(Integer.java:527)
at clientesCarrito.ClienteCarritoCompraServlet.doPost(ClienteCarritoCompraServlet.java:68)


是的,对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);
}


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

最佳答案

以下是java.util.ArrayList.add()方法的声明
public void add(int index,E元素)

所以用

lista.add(0, producto)

09-25 17:25