gpt4 book ai didi

java - 为什么这段代码在 java Spring MVC 中抛出 ClassCastException

转载 作者:行者123 更新时间:2023-12-02 07:53:32 25 4
gpt4 key购买 nike

我正在开发Spring 2.5 MVC模块,我正在使用模板从数据库中检索数据,它正在返回列表...在列表中我添加了bean对象,现在当我尝试时从 bean 对象检索值,其显示 ClassCastException

  List listLogin = LoginDao.Authenticate(username,password);
Iterator it = listLogin.iterator();
while (it.hasNext())
{
Login bean1= (Login) it.next(); //here it is showing classCastException
System.out.println(bean1.getClinicId());
}

public static List Authenticate(String userName, String password) {
List names = template.query("select clinicId from doc_user where userName='"+userName+"' and passwd='"+password+"'",
new RowMapper() {
public Object mapRow(ResultSet resultSet, int i) throws SQLException
{
ArrayList lst = new ArrayList();
Login loginBean = new Login();
loginBean.setClinicId(String.valueOf(resultSet.getInt(1)));
lst.add(loginBean);
return lst;
}
});
return names;
}

最佳答案

那是因为无论 (Login) it.next() 返回的都不是 Login 对象。您可以使用调试器和单步执行器来查看它返回的内容,或者执行穷人的版本并将其打印出来,以查看它返回的内容:

while (it.hasNext()) 
{
Object bean1= it.next();
System.out.println(bean1.getClass().getName());
}

根据您的评论进行更新:

您知道它正在返回一个包含您的登录对象列表的列表:

while (it.hasNext()) 
{
List list1 = (List)it.next();
for (Object bean : list1) {
System.out.println(((Login)bean).getClinicId());
}
}

我会说我认为您做错了什么,并且您的查询可能应该只是返回登录列表。因为父列表中的 ArrayList 似乎只包含一个对象,所以你可能会这样做:

public static List  Authenticate(String userName, String password) {
List names = template.query("select clinicId from doc_user where userName='"+userName+"' and passwd='"+password+"'",
new RowMapper() {
public Object mapRow(ResultSet resultSet, int i) throws SQLException
{
Login loginBean = new Login();
loginBean.setClinicId(String.valueOf(resultSet.getInt(1)));
return loginBean ;
}
});
return names;
}

然后用您最初认为可行的代码处理它们:

List listLogin = LoginDao.Authenticate(username,password);

Iterator it = listLogin.iterator();
while (it.hasNext()) {
Login bean1= (Login) it.next();
System.out.println(bean1.getClinicId());
}

关于java - 为什么这段代码在 java Spring MVC 中抛出 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9926107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com