字符串无法强制转换为整数会话属性

时间:2017-05-21 10:31:33

标签: java session login

您好我收到此错误:

  

java.lang.ClassCastException:java.lang.String无法强制转换为   java.lang.Integer中

在这行代码中:

int est;
est=(Integer) session.getAttribute("estado");

我认为问题在于“estado”尚未填补。我使用这个session-attribubute来查看会话是否已登录,因此它不需要再次登录。

3 个答案:

答案 0 :(得分:3)

无法在此输入,因为IntegerString不兼容。

使用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());