2016-09-23 7 views
0
ここ

は私のコードです...書かれた戻り値の型がどうあるべきかを把握することはできません返品タイプがリスト<string>の場合はどうすればいいですか?

if (lpparam.packageName.equals("com.demo.data")) { 
     XposedBridge.log("we are in Module!");  

     findAndHookMethod("com.demo.data.utils.Utils", lpparam.classLoader, "getListFromJsonArrayString", List<String>,new XC_MethodHook() { 
      @Override 
      protected void afterHookedMethod(MethodHookParam param) throws Throwable { 
       XposedBridge.log("we are in method!"); 
       log("call -> " + (String) param.getResult()); 
      } 
     }); 
    } 


List<String> or List<String.class> is not working 

私は

List<string> getListFromJsonArrayString() 

答えて

0

まず、問題の戻り値の型を持っているフックしようとしています方法:ここ

findAndHookMethod(..., "getListFromJsonArrayString", List<String>, new XC_MethodHook() { 

タイプのリストは、パラメータタイプのためです。ここで戻り値の型を持つべきではありません(これは有効なJavaではありませんが、おそらくList.classを意味します)。正しい形式は次のようになります。

findAndHookMethod(..., "getListFromJsonArrayString", new XC_MethodHook() { 

あなたは別の戻り値の型と同じ名前とパラメータ型リストを持つ2つのJavaメソッドを持つことはできませんので、これは、曖昧でありません。

第二の問題は:

log("call -> " + (String) param.getResult()); 

戻り値の型はList<String>です。あなたはStringにキャストしていますが、それは明らかに機能しません。正しいフォーム:これは未チェックのキャストの警告が表示されますが、あなたは一般的なタイプがある内容を正確に把握するので、あなたはそれを無視することができることを

log("call -> " + (List<String>) param.getResult()); 

注意。

関連する問題