您好我想将注释值注入参数。例如
@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。
非常感谢
答案 0 :(得分:2)
使用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
}
}