gpt4 book ai didi

java - Guice注入(inject)注释值

转载 作者:行者123 更新时间:2023-12-02 02:17:56 24 4
gpt4 key购买 nike

您好,我想将注释值注入(inject)到参数中。例如

@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 变量中注入(inject) 30。

非常感谢

最佳答案

使用bindConstant()作为

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

您可以在整数字段上注释@Inject 和 @MyAnnotation

<小时/>

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

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

为该元素添加一个绑定(bind) 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
}
}

关于java - Guice注入(inject)注释值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49010954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com