我有一段代码是这样的
if(params.get(i) instanceof Boolean){
p.setBoolean(i+1, Boolean.parseBoolean((String)params.get(i)));
}
这段代码没有错吧?但是就是执行时就是出错。
我这样写的原因,因为params是ArrayList<Object>,所以取出的是Object类型,但是Boolean类的方法中没有把Object转换成Boolean的方法,所以只能先转成String再转Boolean。
但是执行的时候报错 java.lang.Boolean cannot be cast to java.lang.String
这不是进入怪圈了吗,想不通啊……
------解决方案--------------------
为什么要转成String而不直接转成Boolean呢。
------解决方案--------------------
调用object的toString方法
------解决方案--------------------
Boolean对象强转String当然会异常
if(params.get(i) instanceof Boolean){
p.setBoolean(i+1, (Boolean)params.get(i));
}
------解决方案--------------------
楼主试试看

if(params.get(i) instanceof Boolean){
p.setBoolean(i+1, (Boolean)params.get(i));
}
if(params.get(i) instanceof Boolean){
p.setBoolean(i+1, Boolean.parseBoolean(params.get(i).toString()));
}