get(0).getDouble 如果数据是null 就会出错了 没有默认值吗

get(0).getDouble 如果数据是null 就会出错了 没有默认值吗

都要先判断下吗  

 if( ls.get(0).getDouble("mymax") == null){

评论区

JFinal

2017-07-30 16:15

改成这样就好:
Double d = ls.get(0).get("myMax", 0);

因为 model.get(attr, defaultValue) 方法是可以携带默认值的

淡定007

2017-07-30 16:24

@JFinal ls.get(0).get("myMax", 0);返回类型是 T ,不能返回别的类型吧

杜福忠

2017-07-31 08:59

@淡定007 你看一眼源码就知道了 , 是强转, 所以可以为null

淡定007

2017-07-31 11:59

@杜福忠 直接异常跳出了

海哥

2017-07-31 12:03

ls.get(0) 为null 了吧

淡定007

2017-07-31 14:16

@海哥 没有null
我是这么写的:
String strSql = " select max(" + fieldname + ") as mymax from " + tbname;
List ls = Db.find(strSql);
if (ls.get(0).getDouble("mymax") == null) {
maxid = 1;
} else {
maxid = ls.get(0).getDouble("mymax") + 1;
}
MaxId m = new MaxId();
m.setTbname(tbname.toLowerCase());
m.setFieldname(fieldname.toLowerCase());
m.setMaxid(maxid);
GlobalVar.pub_maxList.add(m);


如果直接写
MaxId =ls.get(0).getDouble("mymax");就不行

热门反馈

扫码入社