项目是用struts2 + hibernate + spring做的 报java.lang.ClassCastException:java.lang.object;cannot be cast to cn.nj.entity.Users我在代码里是这样写的 
  userName = list.get(0).getUserName();为什么会报这样的错误 请高手指教

解决方案 »

  1.   

    list 是泛型吗?
    list如果是 List<Users> 定义的就不会错
    如果就是 List list    那你要 Users u=(Users) list.get(0);
    userName = u.getUserName();
      

  2.   

    2楼的说法是对的,得到的list是一个泛型,要强转一下。
      

  3.   

    我写的是泛型的 List<Users> list = getUserInfo(userName);
    getUserInfo(userName) 是获取list的方法
      

  4.   

    以前我用jdbc写的都没问题 怎么到了hibernate上就出问题了呢
      

  5.   

    list.get(0) 返回的是一个 Object 类型 所以你要强转·····
      

  6.   

    hibernate.cfg.xml 里面有没有配置 Users 类呀??
      

  7.   

    list.get(0) 返回的是Object 类型 要么强转 要么泛型 和JDBC还是hibernate没关系
      

  8.   

    我改成了Users u = (Users)list.get(0) 还是这行报 java.lang.ClassCastException:java.lang.object;cannot be cast to cn.nj.entity.Users
      

  9.   

    list是一个泛型,要强转一下,赞同。
      

  10.   

    我把我写的代码贴下 大侠们看看 public List<Users> getUserInfo(String userName){
        String sql = "select * from Users where userName = "+"'"+userName+"'";
        List<User> list = this.findBySQL(sql);
       return list;
    }public boolean getUsers(String userName,String password){
         String userNames = null;
         String passWords = null;
         List<Users> list = getUserInfo(userName);
         if(list.size() == 0){
            System.out.println("没有该用户");
            return false;
        }else{
                for(int i = 0; u<list.size(); i++){
                    Users u = (Users) list.get(i);
                    userNames = u.getUserName();
                    passWords = u.getUserPassword();
              if(userName.equals(userNames) && password.equals(passWords)){
                   return true;
             }else{
       System.out.println("密码错误");
                 return false;
              }
                  }
    return false;
                }
    }
      

  11.   

    this.findBySQL(sql); !!!
    你用SQL 他本身不会给你封装成对象的
    用hibernate 用hql
    String hql = "from Users where userName = "+"'"+userName+"'";
      List<User> list = this.find(hql);
      return list;