gpt4 book ai didi

java - 是否可以在运行时更改此 java 代码以插入一些小代码

转载 作者:行者123 更新时间:2023-11-30 11:49:08 25 4
gpt4 key购买 nike

我有一个相当大的代码库。在很多地方我都有一段这样的代码:

for (MyObjectType myobj : myList) {
//...do something with myobj
}

MyObjectType 是我的应用程序中的基本对象,我经常迭代其中的许多对象。我设置了一些 log4j,以便记录有关我正在处理的 MyObjectType 实例的信息:

for (MyObjectType myobj : myList) {
MDC.put("myobj", myobj.identify());
...
logger.error("this message contains info about myobj")
}

这真的很有帮助。不幸的是,有很多看起来像这样的地方我忘了使用 mdc.put()。所以我在想......将是某种检测代码的方法,以便:

  1. 我检测到有一个 for 循环遍历 MyObjectType 的集合
  2. 我将其作为循环中的第一条指令插入:MDC.put("myobj",
    myobj.identify());

如果有办法(使用 aop、instrumentation、一些 java agent?),它会有多困难(也许不值得付出努力)。

我从来没有使用过任何java字节码库,只是轻装上阵。

最佳答案

如果迭代方法非常复杂并且您经常使用它,也许您应该将它移至一个专门用于处理这些功能的新实用程序类?这样,您只需编写一次内容,所有对新静态方法的调用都将重用相同的代码。

关于java - 是否可以在运行时更改此 java 代码以插入一些小代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8538621/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com