download:
bug探索之路:Listget取出的元素是字符串? 第一,bug第一次出现。
来说说我定义的列表吧?我get(0) take out的元素也应该是Map类型的可以吗?不,编译器告诉我,java.lang.string不能被转换成java.util.map。 这意味着你的是字符串类型,你不能骗我说是地图类型。 没办法,你只是一介程罢了。你能打败编译器吗?不管人们说什么。 其次,使用字符串声明连接get(0)的元素
令人发指的一幕出现了。IDEA源代码检查机制告诉你,这是Map,不打一枪是不能把它变成字符串的。 现在我有理由怀疑你的源码检查机制和编译器不是同一家公司生产的。要不要当面对质,看看你们在说什么? 你们两个为什么不打一架?反正我受不了。 三、解决方案:先转换成String再用json解析成Map。 我的诉求是把data_list列表中的第一个Map拿出来,然后在这个Map中找到key对应的值。 string response = http _ sevice . dopost(URL,param map); Gson Gson = new Gson(); map map = new HashMap(); map = gson.fromJson(response,map . getclass());//键 system . out . println(map); List data _ List =(List)map . get(" data "); Try {//产生异常时,一定有处理的方法。要么捕获,要么声明。
map data = new HashMap(); data = gson . from JSON(string . value of(data _ list . get(0)),data . getclass());//键 string insnd = string . value of(data . get(" insind ")); 返回inside; } catch(IndexOutOfBoundsException e){ 返回“-1”; } 复制代码 摘要 老实说,我真的不知道该说些什么。我的大脑告诉我,这是编译器和源码检查机制的问题,但是理智的想想,这个java8编译器已经正常多少年了,不可能有这么明显的bug。