java更改字段类型导致Flex报NoSuchMethodError的错误
普通的一天,从梦想开始。
想到那蛋疼的KPI一大团的难题,想都那个改了SP的类型为何flex就不能访问了。
本来想早点去公司全力以赴的,奈何睡神打败了我,比闹钟提前十多分钟醒来。
经过一天的奋战,终于把kpi的问题解决了,擦着汗水笑不了,因为那个蛋疼的SP!
这里说下这个问题的情况:
之前这个字段spnumber在java中定义为int,大家知道java中int的最大值是2147483647。
但是后来发现10位数已经满足不了spnumber的需求了。
然后我改成long,long的最大值有19位9223372036854775807。可以满足需求了。
改完数据类型后,get set方法也相应改掉,get方法名为getSpNumber()。
改完后,因为flex都是用Number处理,不需更改,然后我编译java,重启web server,然后在flex访问就出现了一个错误:
NoSuchMethodError:getSpNumber()I …
我百思不得其姐,好好的方法怎么会出现后面多个I呢。
认为是什么缓存之类的,反复的build项目,clean项目,清除浏览器缓存,都无效。
内牛满面了。
更搞的是,我把spnumber从long改回int,又不报错了。
顺便说下,我的开发工具是eclipse+flex builder,通过blazeds通信,之前一直可以调试java,但是这两天忽然的就无法调试了。
反复的搞就是不行,不能调试对于程序员来说简直是致命的打击。
今天忽然的就好了。
插话完毕。
然后我想试试运行到这个类内部是怎么执行的,就加个断点。按照惯例,需要改变一下代码然后编译一下再试才能进入断点。
然后尼玛突然可以了。不报那个错误了!!!
总结:还是缓存!!!
遇到这种问题,啥都别说,执行哪个方法出错的,就改下这个方法的代码,build一下,重新运行,保证OK!
google 百度没帮到我..