public Logininfo CheckLogin(Logininfo login) {
List list = getHibernateTemplate().findByExample(login);
Logininfo info = null;
if (list.size() != 0 & list != null) {
info = (Logininfo) list.get(0); ← get(0)取出来的是什么东西? } return info; }
List list = getHibernateTemplate().findByExample(login);
Logininfo info = null;
if (list.size() != 0 & list != null) {
info = (Logininfo) list.get(0); ← get(0)取出来的是什么东西? } return info; }
info = (Logininfo) list.get(0); 从list中拿到下标为0的对象,(Logininfo)是把对象序列化为实体类Logininfo
}list.size的方法的性能比list.empty方法的性能要低些,所以建议lz以后用后者代替。
你要根据你自己这个方法返回的list里面装的是什么东西,get出来的就表示什么对象了!
info = (Logininfo) list.get(0); ← get(0)取出来的是什么东西? }return info;
}
list.get(0)表示取list中的第一LoginInfo实体if (list.size() != 0 & list != null) 这个判断说明他永远只取第一条数据
你都强转成Logininfo了,取出来的肯定是Logininfo对象咯
如果不是Logininfo对象的话,会报一个类型转换异常好像是ClassCaseException
//isEmpty()方法的实现是这样的
public boolean isEmpty() {
return size == 0;
}
//size()方法的实现
public int size(){
return size;
}效率,你能告诉我差多少吗
而且如果list==null的话 用isEmpty会NullPointException
所以list==null是必须的 至于用list.size()==0还是llist.isEmpety();全看个人习惯
他用了hibernate,所以isEmpety 不会有NullPointException
hibernate不会不new的,就算无数据size==0不会空指针!
楼主的问题在于&,不愿意用isEmpety改为&&
if (list != null && !list.isEmpty())
或者
if (list != null && list.size() != 0)