int j=(Integer)map.get(rs.getString("a"));
大家好,请问上面语句为什么总报java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer?要怎样写才可以?

解决方案 »

  1.   

    转型非法,证明map.get(rs.getString("a"))得到的是String类型,你却要强制转换为Interger,显然不行
      

  2.   

    但我MAP赋值是:map1.put(rs_quantity.getString("product_id"), rs_quantity.getInt("quantity"));
    这样的,返回的不应该是整形吗?我要怎样写才可以用INTEGER取出?
      

  3.   

    You can try following:
     int j=Integer.parseInt(map.get(rs.getString("a")));     "Integer.parseInt(String str)"可以将string型字符串转换成Int类型。
      

  4.   

    用上面方面提示:The method parseInt(String) in the type Integer is not applicable for the 
     arguments (Object)
      

  5.   

    那是因为你没使用泛型,必须这样写:
    Integer.parseInt((String)map.get(rs.getString("a")))但按lz所描述,我觉得4L说的不是问题关键
      

  6.   

    你用是jdk版本是多少??旧版本是没有自动解包,装包的,使用map就得注意
      

  7.   

    int j=(Integer)map.get(rs.getString("a")); 
    int 值类型;
    Integer 引用类型,显然不行;
    换成 Integer j=(Integer)map.get(rs.getString("a"));  
    试试!!