+
95
-

回答

使用HotSwapper热插拔

        // 监听 8000 端口,在启动参数里设置
// java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000
HotSwapper hs = new HotSwapper(8000);

ClassPool pool = ClassPool.getDefault();
CtClass ctClass = pool.get(Test.class.getName());

// 获取方法
CtMethod ctMethod = ctClass.getDeclaredMethod("方法名");
// 重写方法
ctMethod.setBody("{ return $1 + \"修改后返回:\" + (0L) + \" 个\"; }");

// 加载新的类
System.out.println(":: 执行HotSwapper热插拔");
hs.reload(ApiTest.class.getName(), ctClass.toBytecode());



网友回复

我知道答案,我要回答