成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

java 8里 Method方法bug

terro / 954人閱讀

摘要:在寫(xiě)框架的時(shí)候出現(xiàn)了頭疼問(wèn)題找不到方法這樣寫(xiě)能找到方法,沒(méi)有問(wèn)題但是換成下面的方式就出問(wèn)題了。建議建議使用然后我們自己遍歷,不推薦使用

在寫(xiě)rpc框架的時(shí)候出現(xiàn)了頭疼問(wèn)題:

 public Object invoke(Object bean)throws Exception {
            Method[] methods = clazz.getMethods();
            for (Method method:methods) {
                if(method.getName().equals(method.getName())){
                    return method.invoke(bean, param);
                }
            }
            throw new Exception("找不到方法");
        }

這樣寫(xiě)能找到方法,沒(méi)有問(wèn)題!!但是換成下面的方式就出問(wèn)題了。

 public Object invoke(Object bean)throws Exception {
      return clazz.getMethod(method, param.getClass()).invoke(bean, param);
 }

跑出異常為:
java.lang.NoSuchMethodException:com.robin.interf.UserService.getUser(java.lang.Integer)

java使用的版本是:jdk1.8.0_101

Class.java代碼跟蹤:

是一個(gè)searchMethods的方法在查找,繼續(xù)走

代碼走到這里,res=null,導(dǎo)致NoSuchMethodException異常,算是java8 bug吧!

原因:searchMethods方法里,m.getName() == internedName這句導(dǎo)致的,正確的是m.getName().intern() == internedName,因?yàn)閙.getName()是堆里取出值,而internedName是常量池里的,而m.getName().intern()會(huì)將常量池里存在的字符串直接取到,不存在的會(huì)放入到常量池里。

建議:建議使用class.getMethods(),然后我們自己遍歷,不推薦使用class.getMethod(methodName, paras)

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/66123.html

相關(guān)文章

  • 記JVM堆外內(nèi)存泄漏Bug查找

    摘要:服務(wù)本身是一個(gè),開(kāi)起的線(xiàn)程數(shù)為,再加上一些其他線(xiàn)程,總的線(xiàn)程數(shù)不會(huì)超過(guò)服務(wù)內(nèi)自己沒(méi)有顯示創(chuàng)建線(xiàn)程或者使用線(xiàn)程池。問(wèn)題解決找到所在后,結(jié)局方案很簡(jiǎn)單,只需將的通過(guò)單例的方式注入到服務(wù)中,即可解決堆外內(nèi)存泄漏的問(wèn)題。 內(nèi)存泄漏Bug現(xiàn)場(chǎng) 一個(gè)做BI數(shù)據(jù)展示的服務(wù)在一個(gè)晚上重啟了5次,由于是通過(guò)k8s容器編排,服務(wù)掛了以后會(huì)自動(dòng)重啟,所以服務(wù)還能繼續(xù)提供服務(wù)。 第一時(shí)間先上日志系統(tǒng)查看錯(cuò)誤日...

    hiYoHoo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<