您好,我想将注释值注入参数。例如

@BindingAnnotation
@Target({ ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    int value() default 0;
}

public class A {
    @Inject @MyAnnotation(30)
    protected Integer a;
}


我如何在a变量中注入30。

非常感谢你

最佳答案

使用bindConstant()作为

bindConstant().annotatedWith(MyAnnotation.class).to(30);


您可以在整数字段上加上@Inject and @MyAnnotation注释。



注意:
如果您的MyAnnotation注释还有一个元素,例如stringValue()

@BindingAnnotation
@Target({ ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
    int value() default 0;
    String stringValue default "";
}


在以下情况下,为该元素bindConstant().annotatedWith(MyAnnotation.class).to("someValue")添加一个更多的绑定似乎可行,但是我觉得这不是正确的方法。

public class A {
    @Inject
    public A(@MyAnnotation Integer integer, @MyAnnotation String string) {
      //Here integer will be 10 and string will be someValue
    }
}

10-06 06:05