本帖最后由 lhxaiee123 于 2014-12-09 09:09:15 编辑

解决方案 »

  1.   

    有的,spring的aop(动态代理),你可以看下
      

  2.   

    spring不太会用有没有对现有框架没有影响的办法
      

  3.   

    有肯定能实现,java支持动态编译,但是会比较麻烦。你需要组织文件内容生成文件,再编译,再加载class。
    不知道楼主为什么会有这种需求,一般的方法,接受参数应该都可以实现楼主的要求。
    请问楼主做这个的目的是什么?
      

  4.   

           写一个自动生成代码的工具因为生成文件的方法上面很多输出流的编写,而我们在实际编码中经常会遇到一些条件的判断,比如,可能要引入某个js或者在action中查出某些需要用到的结果集。在生成代码前就需要我们去填写一些调用的参数,通过这些参数判断是否需要向生成的文件中追加某行代码。
            如果这些判断全部都写在一个文件内会很臃肿,代码可读性不强,所以想在别的文件内做判断,再追加条件判断后的动作。
      

  5.   

    1,利用IO流将test.java文件拷贝一份,命名为test.txt。
    2,读写test.txt文本内容楼主会吧,将字符串插入到你想要插入的位置
    3,将text.java文件删除,将text.txt文件用IO流拷贝一份,文件名为text.java
    4,将text.txt删除
      

  6.   

    最简单粗暴没效率的方法是 留一个诸如//$001之类的注释 然后读取出来replace掉 你需要后续加上去的话只要在替换的时候末行留个标记就行了
      

  7.   

    如果想有效率一点 使用RandomAccessFile记录游标进行写入
      

  8.   

    如果这个指定文件是java源码,你写完肯定想编译。
    文件可以全部读进内存,操作完字符串整体写回。
    编译可以用Runtime类调命令行编译器。
    调用可以Class.forName取得Instance然后反射调用预定接口
      

  9.   

    原始设计就不够好,为什么不用jvm支持的脚本语言来做,Jython或groovy?import groovy.lang.GroovyShell;    
        Binding binding = newBinding();  
        //传递参数  
        binding.setVariable("x",10);  
         binding.setVariable("language", "Groovy");  
          GroovyShell shell = newGroovyShell(binding);  
        //调用,返回值为10  
        Object value =shell.evaluate  
            ("println\"Welcome to $language\"; y = x * 2; z = x * 3; return x ");  
          
      

  10.   

    嵌入脚本做DSL在有些场景下是唯一解