我有很多的样板代码,基本上遵循这样的模式:的Java注释用于包装方法
function doSomething() {
try {
[implementation]
[implementation]
[implementation]
[implementation]
} catch (Exception e) {
MyEnv.getLogger().log(e);
} finally {
genericCleanUpMethod();
}
}
我喜欢创建自己的注解清理我的代码了一下:
@TryCatchWithLoggingAndCleanUp
function doSomething() {
[implementation]
[implementation]
[implementation]
[implementation]
}
方法签名变化很大(取决于方法的实际实现),但样本try/catch/finally部分总是相同的。
我想到的注释会自动将注释方法的内容与整个try...catch...finally
混淆。
我搜索了一个简单的方法来做到这一点,但没有找到任何东西的高和低。我不知道,也许我无法看到所有注释树木的树林。
任何关于如何实现这样的注释的指针将不胜感激。
对我来说这似乎不需要注释;你可以只传递定义'implementationOfDoSomething()'和(可能的话)'genericCleanUpMethod()'的实现作为'doSomething()'的参数,在try/catch/finally中调用它们,然后调用'doSomething ()'什么时候需要模板逻辑? – 2011-12-28 15:46:49
你的答案在于AOP,你研究过这个吗? – smp7d 2011-12-28 15:49:29
我的理解是他有同样的try/catch /最终跨越多种方法。所以不只是一个doSomething,而更像doSomething1,doSomething2,......所有这些都是同样的try/catch/finally,他想要提取到注释 – jeff 2011-12-28 15:50:04