我正在尝试解决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)