Java 字符串不能强制转换为整数会话属性
您好,我收到这个错误: java.lang.ClassCastException:无法将java.lang.String转换为 java.lang.Integer 在代码的这一行: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
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”)
返回一个字符串
,这只是一个假设