【问题标题】:How to check the List<SqlRow> is empty如何检查 List<SqlRow> 是否为空
【发布时间】:2015-11-14 11:12:41
【问题描述】:

我正在使用Ebean 查询

String sql = " some sql query";

List<SqlRow> row = Ebean.createSqlQuery(sql).findList(); //Ebean return the row list 

if ((row == null) && row.isEmpty()){ //if row is there is no value then allocate 700    
  avgSteps=700;         
}
else {
  for(SqlRow sqlrow : row) {        
     avgSteps = sqlrow.getLong("step");
  }
}   

如果用户在我的DB 中没有条目,那么它应该返回一个空值并且分配给avgSteps = 700 但它没有分配值,并且NullPoinertException 发生。

【问题讨论】:

    标签: java playframework ebean


    【解决方案1】:

    试试这个,

    String sql = " some sql query";
    
    List<SqlRow> row = Ebean.createSqlQuery(sql).findList(); //Ebean return the row list 
    
    if ((row.size() == 0)){ //if row is there is no value then allocate 700    
      avgSteps=700;         
    }
    else {
      for(SqlRow sqlrow : row) {        
         avgSteps = sqlrow.getLong("step");
      }
    }   
    

    【讨论】:

      【解决方案2】:

      您需要更改if 条件如下:

      if ((row == null) || row.isEmpty())
      

      您想检查该行是否要么为空或为空,而不是同时为空和空。

      【讨论】:

      • 感谢您的回答,我也尝试过或条件...但是 row.isEmpty() 没有相应地工作。如果没有元素,那么它应该返回 true。但事实并非如此。
      猜你喜欢
      • 1970-01-01
      • 2017-08-02
      • 1970-01-01
      • 2017-11-15
      • 2020-05-29
      • 2018-04-02
      • 2016-04-05
      • 2018-01-08
      • 2020-09-25
      相关资源
      最近更新 更多