【发布时间】:2018-06-22 12:00:56
【问题描述】:
我会注解一个 Java 方法,以便在方法体执行之前和方法返回给调用者之前运行一些代码。我在编译时使用 Java 注释阅读了代码生成。
我要注释的方法的签名如下例所示。
public Output process(Input arg0) {
// ...
// body that creates output object as processing result of arg0
// ...
return output;
}
为了在方法体执行之前记录输入参数并在方法返回给调用者之前记录输出数据,我会对上述方法进行注释。
我假设有如下注释。
@Log(input = "arg0", inputDest = "log1.txt", outputDest = "log2.txt")
上面的注解应该生成(在编译时)一些类似下面的代码。
public Output process(Input arg0) {
SampleLogger.log(arg0, "log1.txt"); // <-- generated code
// ...
// body that creates Output object as processing result of arg0
// ...
SampleLogger.log(output, "log2.txt"); // <-- generated code
return output;
}
如何做到这一点?
【问题讨论】:
-
你试过什么?你的研究是什么?我只看到需求,而不是尝试解决方案。因此,这个问题太宽泛了,因为有任何方法可以实现这一目标。
-
对于记录器功能对我来说似乎有点矫枉过正。为什么普通的旧 AOP 不起作用?方面J?它也适用于注释,顺便说一句。
标签: java annotations code-generation