当前位置: 代码迷 >> J2SE >> 如何从ArrayList<Object>中取出boolean类型的值
  详细解决方案

如何从ArrayList<Object>中取出boolean类型的值

热度:15   发布时间:2016-04-23 20:45:11.0
怎么从ArrayList<Object>中取出boolean类型的值?
我有一段代码是这样的

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()));
}
  相关解决方案