我有一个类:
class Foo {
Foo(@Named("x") x) { ... }
}
x
绑定自Properties
对象:
Names.bindProperties(binder(), props);
但如果未设置x
,我想跳过绑定Foo
。实现这一目标的一种方法是:
if (props.contains("x")) {
bind(Foo.class);
}
但是有更好的方法吗?
if (namedPropsBound(Foo.class)) { // how to implement this method?
bind(Foo.class);
}
答案 0 :(得分:1)
是:用@Nullable注释x应该做的伎俩。当然,这只允许在Foo中注入缺失的X,它不会避免注入Foo。
试试这个: 您可以使用http://code.google.com/p/google-guice/wiki/CustomInjections中所述的TypeListener。每当Guice尝试注入Foo时,您可以根据属性的状态来阻止它。