我正在购买购物车,并且我发现ArrayList
无法投放到ShoppingCart
的例外情况。如何将ArrayList
投射到此课程?
ShoppingCart shoppingCart;
shoppingCart = (ShoppingCart) session.getAttribute("shoppingCart");
if(shoppingCart == null){
shoppingCart = new ShoppingCart();
}
我收到了这个错误
java.lang.ClassCastException: java.util.ArrayList cannot be cast to business.ShoppingCart
指向
shoppingCart = (ShoppingCart) session.getAttribute("shoppingCart");
答案 0 :(得分:1)
您无法将ArrayList
投放到Object
以外的某个类或List
或Collection
以外的其他界面。
您可以做的最好的事情是将ArrayList
转换为<{1}}到您的ShoppingCart
课程中,例如:
ShoppingCart cart = null;
Object cart_object = session.getAttribute("shoppingCart");
if (cart_object instanceof ArrayList) {
ArrayList cart_list = (ArrayList) cart_object;
cart = new ShoppingCart(cart_list);
}
或者,您可以构建一个新的购物车,并将列表的内容添加到其中:
ShoppingCart cart = new ShoppingCart();
Object cart_object = session.getAttribute("shoppingCart");
if (cart_object instanceof ArrayList) {
ArrayList cart_list = (ArrayList) cart_object;
for(Object item : cart_list) {
cart.add(item);
}
}
但究竟如何或您需要做什么取决于ShoppingCart
类的实施细节。