使用Spring测试列表是否为null

时间:2015-09-03 21:54:38

标签: java collections

我需要测试列表是否为空(意味着表为空),以便为每个条件显示不同的panelGroup。我不是Java专家,这就是我正在做的事情:

ManagedBean:

public List<Platform> getPlatformList() {
        if(platformList == null){
            platformList = new ArrayList<Platform>();
            platformList.addAll(getPlatformService().getPlatform());
        }
        return platformList;
    }

    public void setPlatformList(List<Platform> platformList) {
        this.platformList = platformList;
    }

public int getFirstedit() { 
        if(platformList == null){return 1; 
        // Display add form
        }
        else  {return 0;
        // Display update form
        }
            }
    public void setFirstedit(int firstedit) {this.firstedit = firstedit;    }

DAO:

public Platform getPlatformById(int id) {
     List list = getSessionFactory().getCurrentSession().createQuery("from platform where Id=?").setParameter(0, id).list();
      if ( list.size() == 0 )
        return null;
      else
        return (Platform)list.get(0);
    }

public List<Platform> getPlatform() {
    List list = getSessionFactory().getCurrentSession().createQuery("from Platform").list();
    return list;
}

但是在index.xhtml中,它总是显示条件1(就像列表是空的),而在第一次,这是正确的,我保存了一个新的条目,我验证它存在于数据库中,但这仍然是显示1作为firstEdit的结果。

1 个答案:

答案 0 :(得分:2)

如果platformList中的getPlatformList()为空,则表示getFirstEdit,因此在if(platformList == null){ platformList = new ArrayList<Platform>(); 中,空测试永远不会成立:

platformList.isEmpty()

使用Collection界面中的public int getFirstedit() { if(getPlatformList().isEmpty()){ // change here return 1; // Display add form } else { return 0; // Display update form } } 测试列表是否为空:

HashMap<String, Bitmap>