小编mic*_*ael的帖子

注释处理器,获取方法参数的修饰符

我目前正处于一个使用Java自定义注释的项目中.我想强制我的注释的用户,final boolean b如果他用@Foo注释了方法,他必须至少声明方法参数列表中的内容.所以看起来应该是这样的:

@Foo
public void foo(final boolean b) { }

@Foo
public void bar() { } // This should result in an error
Run Code Online (Sandbox Code Playgroud)

使用我的注释处理器,我可以检索变量的类型,但不能检索最终修饰符.如果我想要检索修改器集,如下面的代码所示,虽然最终修饰符出现在参数上,但该集将始终为空.

for (VariableElement parameter : method.getParameters()) {
    Set<Modifier> modifiers = parameter.getModifiers(); // This set is always empty
}
Run Code Online (Sandbox Code Playgroud)

任何想法,为什么会这样?我错过了什么吗?

java annotations annotation-processing

6
推荐指数
1
解决办法
323
查看次数

标签 统计

annotation-processing ×1

annotations ×1

java ×1