各位高手,我现在碰到了一个问题,希望大家帮忙解决一下:
现在的项目需要我在动态的过程中往一个方法里面增加一些代码,并运行这个函数,我具体的做法是这样的:
1、首先写好一个空函数funB(),在代码的最后调用funB()
2、在空函数前有一个函数funA(),funA()利用Java IO 在funB中插入一些代码。
3、直接运行后,发现funB()仍然是空的刷新eclipse中的工程,再运行就可以得到得到funB()的结果。估计是funA()运行后,代码没用重新编译。我想问问大家怎么解决这个问题,谢谢了。

解决方案 »

  1.   

    你的funA是往funB所在的源代码文件中添加的吧?
    这样当然会出问题.你往funB中添加代码后,应该调用系统命令,执行javac编译它,再加载这个类以使用.
    不过,你这样做,其实非常的非主流.一个成功的程序,怎么会要动态的修改其内部的代码呢?肯定是某些地方,你没找到实现的方法.
    比如:计算一个表达式,2*3+(3+1)/3,这个表达式如果直接写在源代码中,当然很好算,那是因为计算的工作交给了编译器.但是,如果这个表达式是动态输入的,那你就不会了,你可能就会想到动态生成一个源代码,把表达式加进去.但是这是很不科学,运行速度也很慢的.
      

  2.   

    刷新project 或重新运行就行了吧