您好,我想将注释值注入参数。例如
@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
}
}