私はクラスに注入されたオブジェクトのマップを格納するクラス内にフィールドを持っています。このフィールドに入力する方法は?guiceのstatic finalフィールド初期化のために依存関係注入フィールドを使用するには?
このフィールドは主にルックアップに使用されるため、静的な最終変数(Right?)になりますか?
例:
mapOfObjects.put("foo",x);
mapOfObjects.put("bar",y);
サンプルコード
public class A {
private ClassX x;
private ClassY y;
private final Map<String, Object> mapOfObjects = new HashMap<>();
public void someMethod() {
Object obj = mapOfObjects.get("x");
//do something fancy with obj
}
@Inject
public void setX(ClassX x) {
this.x = x;
}
@Inject
public void setY(ClassY y) {
this.y = y;
}
}
- は、静的なブロックにマップの構築を行うことができますか?この方法は醜いですか?
- 最初の依存性注入または静的なコードブロックはどうなりますか?
- このクラスもテスト可能であるように、最良の方法は何ですか。
ありがとうございます。