Java ArchUnit-确保对方法参数进行注释

Java ArchUnit-确保对方法参数进行注释,java,annotations,archunit,Java,Annotations,Archunit,我正在尝试编写一个ArchUnit测试规则,它应该确保使用@ComponentInterface注释注释的接口具有使用@Input注释注释的方法参数。 像这样: ArchRule rule = methods() .that() .areDeclaredInClassesThat() .areInterfaces() .and() .areDeclaredInC

我正在尝试编写一个ArchUnit测试规则,它应该确保使用
@ComponentInterface
注释注释的接口具有使用
@Input
注释注释的方法参数。 像这样:

ArchRule rule =
        methods()
            .that()
            .areDeclaredInClassesThat()
            .areInterfaces()
            .and()
            .areDeclaredInClassesThat()
            .areAnnotatedWith(ComponentInterface.class)
            .should()
            .haveRawParameterTypes(
                allElements(CanBeAnnotated.Predicates.annotatedWith(Input.class)));
界面如下所示:

@ComponentInterface
public interface AdminComponent {
  void login(@Input(name = "loginString") String loginString);
}
但测试失败,出现如下错误:
Method没有原始参数类型所有元素都用@Input-in(AdminComponent.java:0)注释

在这种情况下,规则应该如何正常工作


另外,在做了一些调试之后,haveRawParameterTypes检查参数类型(类)是否被注释,而不是方法参数本身。所以它查看String类并发现它没有用@Input注释。很高兴知道,但这并不能解决问题。

也找不到有关参数的信息。。奇怪。。也许它不见了。看来这目前是不可能的。有关相关问题,请参阅。