您好我收到此错误:
java.lang.ClassCastException:java.lang.String无法强制转换为 java.lang.Integer中
在这行代码中:
int est;
est=(Integer) session.getAttribute("estado");
我认为问题在于“estado”尚未填补。我使用这个session-attribubute来查看会话是否已登录,因此它不需要再次登录。
答案 0 :(得分:3)
您无法在此输入,因为Integer
与String
不兼容。
使用Integer#parseInt
将其解析为int
est = Integer.parseInt(session.getAttribute("estado"));
答案 1 :(得分:2)
session.getAttribute("estado");
返回estado
中保存的会话属性,这里发生了什么,JVM发现(在运行时)返回值的类型是String
所以当你曾尝试将其投放到Integer
中,但却发起了ClassCastException
这里需要的是使用estado
解析属性Integer.parseInt(session.getAttribute("estado"));
返回的结果,这是答案中建议的
注意:您可能会质疑您是否已为该属性添加了一个整数(不是
String
),但考虑到request.getParameter("attrName")
返回String
,只是一个假设,请仔细跟踪您的代码
答案 2 :(得分:1)
使用Integer.parseInt
int est= Integer.parseInt(session.getAttribute("estado").toString());