0

私は次のようなクラスを持っています:

class Foo {
    Foo(@Named("x") x) { ... }
}

xオブジェクトからバインドされPropertiesます:

Names.bindProperties(binder(), props);

しかし、x設定されていない場合は、 binding をスキップしたいと思いFooます。これを実現する 1 つの方法は次のとおりです。

if (props.contains("x")) {
    bind(Foo.class);
}

しかし、より良い方法はありますか?

if (namedPropsBound(Foo.class)) { // how to implement this method?
    bind(Foo.class);
}
4

1 に答える 1

1

以前:xに@Nullableアノテーションを付けると、トリックが実行されます。もちろん、これはFooで欠落しているXの注入のみを許可し、Fooの注入を回避しません。

これを試してください: http: //code.google.com/p/google-guice/wiki/CustomInjectionsで説明されているようにTypeListenerを使用できます。GuiceがFooを注入しようとするときはいつでも、プロパティの状態に応じてそれをブロックできます。

于 2012-11-28T07:25:25.963 に答える