gpt4 book ai didi

java - Guice Multibinder 用于具有特定值的注释

转载 作者:行者123 更新时间:2023-12-01 23:43:19 24 4
gpt4 key购买 nike

我知道我可以使用特定注释进行 Guice 多重绑定(bind),如下所示

Multibinder.newSetBinder(binder(), Bound.class, Annotation.class);

但是我可以对不仅用 Annotation.class 注释而且还具有特定值的类进行更具体的多重绑定(bind),例如@Annotation("type1")

最佳答案

在这种情况下,您可以实现注释并将其实例传递给 Multibinder 静态工厂方法:

  static class YourAnnotationImpl implements YourAnnotation {

private final String value;


YourAnnotationImpl(String value) {
this.value = value;
}

@Override public String value() {
return value;
}

@Override public Class<? extends Annotation> annotationType() {
return YourAnnotation.class;
}

@Override public String toString() {
return "@" + YourAnnotation.class.getName() + "(value=" + value + ")";
}

@Override public boolean equals(Object o) {
return o instanceof YourAnnotationImpl
&& ((YourAnnotationImpl) o).value().equals(value());
}

@Override public int hashCode() {
return (127 * "value".hashCode()) ^ value.hashCode();
}

}
...

Multibinder.newSetBinder(binder(), Bound.class, new YourAnnotationImpl("type1");

关于java - Guice Multibinder 用于具有特定值的注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17580422/

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