Java 尝试从会话对象强制转换getAttribute时发生类强制转换异常?

Java 尝试从会话对象强制转换getAttribute时发生类强制转换异常?,java,Java,我知道这是可能的,没有任何异常被抛出,但我如何才能抛出这个对象/bean: public class ShoppingCart { private HashMap<String, Item> items; private String owner; public ShoppingCart(String owner) { items = new HashMap<String, Item>(); this.owner = owner; } public c

我知道这是可能的,没有任何异常被抛出,但我如何才能抛出这个对象/bean:

public class ShoppingCart {
private HashMap<String, Item> items;
private String owner;

public ShoppingCart(String owner) {
    items = new HashMap<String, Item>();
    this.owner = owner;
}

public class Servlet extends HttpServletRequest request

         if (action.equals("/addItem")) {
                //if()
                String Id = request.getParameter("itemId");
                ShoppingCart cart = (ShoppingCart) session.getAttribute("cart");
                int quantity = Integer.parseInt(request.getParameter("quantity").toString());
                Item item = this.stock.getItem(Id);
                cart.addItem(item, quantity);
                dispatcher = this.getServletContext().getRequestDispatcher(action = "/CartView.jspx");
            }
购物车强制转换引发类强制转换异常无法将字符串强制转换为模型类型lessonSelection。
任何帮助都将不胜感激

您正在使用session.setAttributecart(用户名)将字符串对象放入会话中;但您稍后将尝试将此字符串转换为ShoppingCart。字符串不能强制转换到ShoppingCart是正常的,因此它会给出ClassCastException。

如何将cart属性添加到会话?session.setAttributecart,username;很明显你在把一件东西当作购物车来扔,而且。。。事实并非如此。所以不要这样做。您确定要强制转换,还是只需要调用构造函数:new ShoppingCart session.getAttribute cart;看起来您存储在您会话中的属性不是购物车的类型。将其转换为类型对象,并测试它是否是购物车的实例。ifo instanceof ShopingCart{}我能像这样将两个变量传递给一个会话吗:session.setAttributecart、Username、cart或类似的东西?@RamiStefanidis OP在评论部分提到过它。@AkashKing我想你应该定义一个具有cart字段的用户类。然后您可以使用session.setAttributecart,user。cart@RamiStefanidisOP确认用户名为注释中的字符串。是否可以在一个会话对象中传递两个变量?