【问题标题】:String cannot be cast to Integer session Attribute字符串不能转换为整数会话属性
【发布时间】:2018-01-30 22:37:41
【问题描述】:

您好,我收到此错误:

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

在这行代码:

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

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

【问题讨论】:

    标签: java session login


    【解决方案1】:

    不能在此处进行类型转换,因为 IntegerString 不兼容。

    使用Integer#parseInt 将其解析为int

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

    【讨论】:

      【解决方案2】:

      session.getAttribute("estado");返回estado中保存的会话属性,这里发生了什么,JVM发现(在运行时)返回值的类型是String所以当你尝试将它转换为Integer时解雇了ClassCastException

      您需要在这里使用Integer.parseInt(session.getAttribute("estado")); 解析属性estado 返回的结果,这在答案中有所建议

      注意:您可能会质疑您已向该属性添加了一个整数(不是String),但请仔细跟踪您的代码,考虑到request.getParameter("attrName") 返回一个String,这只是一个假设

      【讨论】:

        【解决方案3】:

        使用 Integer.parseInt

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

        【讨论】:

          猜你喜欢
          • 2018-01-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多