【发布时间】:2022-02-03 05:43:58
【问题描述】:
我想在运行时对所有带注释的字段执行代码,包括子类中的字段。举个小例子:
class X {
// A custom annotation on `x`.
@MyAnn
int x = 0;
Y y = new Y();
}
class Y {
@MyAnn
int y = 1;
// ...
}
现在,我需要的是对X 中的每个MyAnn 的迭代器,即x 和y.y。想象一下我想把它们打印出来:
for (ann : anns) {
System.out.println(/* annotation */);
}
(打印出0,1)。
基本上,其中有几个部分我对 Java 的了解不够:
- 获取注释的每个实例
- 获取注释字段的值
谢谢!
【问题讨论】:
-
但是......我也担心这可能几乎是一个 XY 问题,所以如果这不是“惯用的”Java,请告诉我。我有很长的 Rust 背景,我觉得我只是想在这个意义上替换派生宏。
-
如果您认为可能是 XY 问题,您可能需要提及 Y。
-
一种选择是编写注释处理器
标签: java