一个方法,编译器承认,编译通过,解释器不承认,运行时抛出NoSuchMethodError异常??这是怎么回事???

smcdl 2003-10-16 02:20:15
一个方法,编译器承认,编译通过,解释器不承认,运行时抛出NoSuchMethodError异常??这是怎么回事???
...全文
49 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
smcdl 2003-10-16
  • 打赏
  • 举报
回复
我终于找到问题了,原来是Jbuilder8的问题,JBuilder编译出错,造成java文件和class文件不同步。我在这个问题上面浪费了很多时间,希望大家借鉴,有时候不一定是程序的问题,要对自己有信心,多想想其他地方可能出现什么问题。

最后谢谢大家回答我的问题,回答得朋友都有分。
smcdl 2003-10-16
  • 打赏
  • 举报
回复
java.lang.NoSuchMethodError: test.remake.setMu(Ltest/Myutils;)V
原句是这样的,请大家帮我分析一下,现在只有一个test包,没有其他包了。
smcdl 2003-10-16
  • 打赏
  • 举报
回复
this error can only occur at run time if the definition of a class has incompatibly changed.
我的问题好像就是这句话,在运行时出现Error,什么叫定义的类发生不兼容改变(the definition of a class has incompatibly changed)???
haode 2003-10-16
  • 打赏
  • 举报
回复
嗯,有可能是你在别的包下边也有这个remake的class文件,你试试重新打包
LoveRose 2003-10-16
  • 打赏
  • 举报
回复
public class NoSuchMethodError extends IncompatibleClassChangeError

Thrown if an application tries to call a specified method of a class (either static or instance), and that class no longer has a definition of that method.

Normally, this error is caught by the compiler; this error can only occur at run time if the definition of a class has incompatibly changed.

文档上是这么说的,你的这些代码也没法看出问题
smcdl 2003-10-16
  • 打赏
  • 举报
回复
remake rm = new remake();

rm.setMU(mu);

rm.doProcess();

执行到第二句时,说没有改方法,但是,我检查过,有改方法,参数传递也没问题,传一个对象过去。并且,remake类编译后(使用JBuilder8),在编辑器中输入rm.能点出setMU()方法,为什么执行时就不行呢???如果没有第二句,就没问题了。
LoveRose 2003-10-16
  • 打赏
  • 举报
回复
把代码贴出来研究了
NoSuchMethodError就是说没有这样的方法了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧