java问题,动态修改java类里面的一个方法

2025-02-25 17:31:13
推荐回答(4个)
回答1:

//创建文件输出流
PrintStream ps=new PrintStream("./log.txt");
//设置新的输出流 System.setErr(ps);

System类的out、err、in成员变量都是final类型的,不能直接复制,要通过setOut()、setErr(),setIn()方法来改变流。上例是通过setOut()方法改变输入流输入位置,将输出重定向到一个固定的目录,实现程序日志
e.printstacktrace 默认用的就是System的输出

回答2:

public class PersistenceException {
    public PersistenceException(Exception e){
        // 这里对错误信息进行持久化
        System.out.println("持久化代码放这里...");
        // 如果需要在控制台同时打印出日志的话
        e.printStackTrace();
    }
    /**测试主方法*/
    public static void main(String[] args){
        int a = 0;
        int b = 0;
        try {
            int c = a/b;
        }catch (Exception e){
            new PersistenceException(e);
        }
    }
}

回答3:

AST 修改抽象语法树

回答4:

不管如何,都是需要逐个改,不如一次修改好。。。。。。。。。