开发者社区> 问答> 正文

java_lang_NoSuchMethodException由什么引起的?


问题分析:
找不到特定的函数时抛出此类异常,因为编译时依赖的库版本有这个函数的,但是运行时却没有找到,这个异常通常发生在反射调用时被抛出。
解决方案:
找不到特定的函数时抛出此类异常,请注意打包的类库版本信息,一般发生在反射调用时被抛出。请查看日志中此crash附近日志信息,并检查日志报错对应的代码是否写错函数名。
代码示例:

  1. [backcolor=transparent]    [backcolor=transparent]package[backcolor=transparent] com[backcolor=transparent].[backcolor=transparent]alibaba[backcolor=transparent].[backcolor=transparent]mqc[backcolor=transparent].[backcolor=transparent]test[backcolor=transparent];
  2. [backcolor=transparent]    [backcolor=transparent]import[backcolor=transparent] java[backcolor=transparent].[backcolor=transparent]lang[backcolor=transparent].[backcolor=transparent]reflect[backcolor=transparent].[backcolor=transparent]InvocationTargetException[backcolor=transparent];
  3. [backcolor=transparent]    [backcolor=transparent]import[backcolor=transparent] java[backcolor=transparent].[backcolor=transparent]lang[backcolor=transparent].[backcolor=transparent]reflect[backcolor=transparent].[backcolor=transparent]Method[backcolor=transparent];
  4. [backcolor=transparent]    [backcolor=transparent]//简单的反射demo
  5. [backcolor=transparent]    [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]class[backcolor=transparent] V [backcolor=transparent]{
  6. [backcolor=transparent]        [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]void[backcolor=transparent] printf[backcolor=transparent](){
  7. [backcolor=transparent]            [backcolor=transparent]System[backcolor=transparent].[backcolor=transparent]out[backcolor=transparent].[backcolor=transparent]println[backcolor=transparent]([backcolor=transparent]"printf"[backcolor=transparent]);
  8. [backcolor=transparent]        [backcolor=transparent]}
  9. [backcolor=transparent]        [backcolor=transparent]public[backcolor=transparent] [backcolor=transparent]static[backcolor=transparent] [backcolor=transparent]void[backcolor=transparent] main[backcolor=transparent]([backcolor=transparent]String[backcolor=transparent][][backcolor=transparent] args[backcolor=transparent])[backcolor=transparent] [backcolor=transparent]throws[backcolor=transparent] [backcolor=transparent]ClassNotFoundException[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]SecurityException[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]NoSuchMethodException[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]IllegalArgumentException[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]IllegalAccessException[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]InvocationTargetException[backcolor=transparent],[backcolor=transparent] [backcolor=transparent]InstantiationException[backcolor=transparent] [backcolor=transparent]{
  10. [backcolor=transparent]            [backcolor=transparent]Class[backcolor=transparent] c [backcolor=transparent]=[backcolor=transparent] [backcolor=transparent]Class[backcolor=transparent].[backcolor=transparent]forName[backcolor=transparent]([backcolor=transparent]"com.alibaba.mqc.test.V"[backcolor=transparent]);
  11. [backcolor=transparent]            [backcolor=transparent]Method[backcolor=transparent] m [backcolor=transparent]=[backcolor=transparent] c[backcolor=transparent].[backcolor=transparent]getDeclaredMethod[backcolor=transparent]([backcolor=transparent]"printf"[backcolor=transparent],[backcolor=transparent]null[backcolor=transparent]);
  12. [backcolor=transparent]            m[backcolor=transparent].[backcolor=transparent]invoke[backcolor=transparent]([backcolor=transparent]c[backcolor=transparent].[backcolor=transparent]newInstance[backcolor=transparent](),[backcolor=transparent]null[backcolor=transparent]);
  13. [backcolor=transparent]        [backcolor=transparent]}
  14. [backcolor=transparent]    [backcolor=transparent]}

参考文献:
1.https://docs.oracle.com/javase/7/docs/api/java/lang/NoSuchMethodException.html
2.http://stackoverflow.com/questions/19913970/java-java-lang-nosuchmethodexception

展开
收起
猫饭先生 2017-10-25 10:40:40 1547 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
OpenCrypto Unchaining the Java 立即下载
Java Your(Next) 立即下载
EXTENDING SPARK WITH JAVA AGEN 立即下载