2016-11-10 6 views
-1

なぜ "R response = proxy.CallAPISync(request);"という呼び出しでコンストラクタ関数RegisterProxy()が実行されなかったのですか? ?コンストラクタ関数が実行されなかったのはなぜですか?

public class SoaCaller { 
    private static RegisterProxy proxy = new RegisterProxy(); ; 
    public static <T, R> R CallAPISyn(T request){ 
     R response = proxy.CallAPISync(request); 
     return response; 
    } 
} 

public class RegisterProxy { 
    private static HashMap<String, BaseSoaImplement> cache = new HashMap<>(); 
    public RegisterProxy(){ 
     try { 
        cache.put(GetHotelStaticInfoRequestType.class.getName(), new GetHotelStaticInfoImpl()); 
    } 
catch (Exception ex){ 
     ExceptionUtils.getStackTrace(ex)); 
     } 
} 
+1

これは新しいインスタンスを作成しないためです。コンストラクタは 'SoaCaller'がロードされたときに呼び出されました。 –

+0

コンストラクタは、オブジェクト作成時にのみ呼び出されます。 –

+0

私の唯一の説明は以前に呼ばれたことです。 – dasblinkenlight

答えて

1

new RegisterProxy();のみが初めてにクラスSoaCallerに遭遇クラスローダを走ったです。

CallAPISyn

関連する問題