我有一个非常大的代码库。在很多地方我都有一段这样的代码:
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()。所以我在想...会有一些方法来检测代码,以便:
MDC.put("myobj",
myobj.identify());
如果有办法(使用aop,instrumentation,一些java代理?),它会有多难(也许它不值得付出努力)。
我从未使用任何java字节码库,只是轻轻地弹跳。
答案 0 :(得分:1)
如果迭代方法非常复杂并且你使用它太多了,也许你应该将它移动到专门用于处理这些函数的新实用程序类?这样,你需要编写一次,所有对新静态方法的调用都将重用相同的代码。
答案 1 :(得分:0)
我相信你必须在课堂加载时这样做。我自己不知道怎么做。但是我们公司使用供应商的应用程序,以这种方式检测我们的应用程序代码。
对于应该由程序员(IMHO)注意到的东西来说,这似乎很奇怪。我想知道为什么不通过像eclipse这样的IDE使用重构,在那里你可以找到某些东西的实例,然后添加代码?两者都需要测试,但如果你的仪器出错,调试问题以解决问题可能会更难。
只是我的意见。
答案 2 :(得分:0)