我需要测试列表是否为空(意味着表为空),以便为每个条件显示不同的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的结果。
答案 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>