还有,case "Integer"下一行也有同样错误

解决方案 »

  1.   

    switch 语句的控制表达式和各case分支的标签值必须被指定为byte,short,char或者int型
      

  2.   

    看看报错信息 : 
    incompatible types
    found   : java.lang.String
    required: int
               switch(str) { ..............
    可见是只能用int了
      

  3.   

    Java中的switch只能应用与int(当然可以隐式转换为int的其他类型入byte,short,char也可以),所以boolean,long和String都是不能用地
      

  4.   

    北极星说得比较全面。
    如果是只是完成段子只中的功能(只有两种类型的话),建议用判断语句。这样改
    if ((al.get(i).getClass().getName()).equals("String")) {
                cstmt.setString(i,(String)al.get(i));
    }else{
                cstmt.setInt(i,al.get(i)));
    }