Java 字符串不能强制转换为整数会话属性

Java 字符串不能强制转换为整数会话属性,java,session,login,Java,Session,Login,您好,我收到这个错误: java.lang.ClassCastException:无法将java.lang.String转换为 java.lang.Integer 在代码的这一行: int est; est=(Integer) session.getAttribute("estado"); 我认为问题在于“estado”尚未填写。我使用此会话属性以查看会话是否已登录,从而无需再次登录。您不能在此处键入cast,因为Integer与String不兼容 用于将其解析为int est = Integ

您好,我收到这个错误:

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

在代码的这一行:

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

我认为问题在于“estado”尚未填写。我使用此会话属性以查看会话是否已登录,从而无需再次登录。

您不能在此处键入cast,因为
Integer
String
不兼容

用于将其解析为
int

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

不能在此处输入强制转换,因为
整数
字符串
不兼容

用于将其解析为
int

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

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

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

session.getAttribute(“estado”)返回保存在
estado
中的会话属性,这里发生的情况是,JVM(在运行时)发现返回值的类型是
String
,因此当您尝试将其转换为
Integer
时,它触发了一个
ClassCastException

这里需要使用
Integer.parseInt(session.getAttribute(“estado”))解析属性
estado
返回的结果

注意:您可能会质疑您已经向该属性添加了一个整数(不是
字符串
),但考虑到
请求,请仔细跟踪代码。getParameter(“attrName”)
返回一个
字符串
,这只是一个假设


session.getAttribute(“estado”)
返回保存在
estado
中的会话属性,这里发生的情况是,JVM(在运行时)发现返回值的类型是
String
,因此当您尝试将其转换为
Integer
时,它触发了一个
ClassCastException

这里需要使用
Integer.parseInt(session.getAttribute(“estado”))解析属性
estado
返回的结果

注意:您可能会质疑您已经向该属性添加了一个整数(不是
字符串
),但考虑到
请求,请仔细跟踪代码。getParameter(“attrName”)
返回一个
字符串
,这只是一个假设