私は次の状況にあります:
クラスServiceCaller:
public class ServiceCaller{
private Service service;
public void initialize(List<String> params){
//get the params from list and set to String objects
service = new Service(param1,param2);
}
}
クラスサービス:
public class Service{
SomeClass classe;
public Service(String param1,String param2){
//call methods to do stuffs with params
classe = new SomeClass();
}
}
私のアプリケーションには、.propertiesを読み取り、ServiceCallerクラスを呼び出し、構築後にServiceCallerのパラメーターを初期化して入力するフレームワークがあります。Serviceクラスは、パラメーターを操作するだけで、SomeClassクラスをインスタンス化します。
私はこれらすべてをGoogleGuiceに渡そうとしていますが、私のクラスはそうだった:
クラスサービスの発信者:
public class ServiceCaller{
private final Service service;
@Inject
public ServiceCaller(Service service){
this.service = service;
}
public initialize(List<String> params){
//set params to objects...
}
}
およびクラスサービス:
public class Service{
private final SomeClass classe;
@Inject
public Service(SomeClass classe, String param1,String param2){
//call methods to do stuffs with params
this.classe = classe;
}
}
ここに私の疑問があります:どうすればこれを行うことができますか?
1-ServiceCallerでは、注入されたコンストラクターはinitMethodの前に呼び出されます。このように、彼はまだParamsを持っていません。これにより、ServiceクラスにnullPointerが生成されると思います。文字列パラメータを受け取るにはどうすればよいですか?
2-ServiceCallerクラス内にサービスクラスを注入するにはどうすればよいですか?彼はinitを呼び出し、パラメーターを使用してServiceクラスをマウントし、この瞬間にのみService(パラメーターを既に使用)をServiceCallerに注入する必要があります。