2015-11-22 88 views
0

現在我被特定的問題所困擾,要求你們幫忙。從Jython傳遞給Java int [] PyList

關鍵詞: Java反射,Jython的PyList,NoSuchMethodException

Java端:

targetMethod(INT [])是該方法正是我想要通過反射來調用。請注意int []參數。

Jython的邊:

l_params = [1,2,3]

問題:

當我試圖通過傳遞類型(l_params)做的反射呼叫 ,得到如下信息:

java.lang.NoSuchMethodException:targetMethod(org.python.core.PyList) 在java.lang.Class.getDeclaredMethod(來源不明)

那麼該如何處理呢?希望能從你身上獲得光明。

回答

0

葉氏,一個可能的解決方案 - 代理:

Jython的 ---- Java代理 ---- 目標定位方法

雖然目標方法是未控制的,我們可以在Java代理中做我們想做的任何事情。

但是如何在不使用代理的情況下解決這個問題?

//在2015年11月23日加入

由於Jython中的靈活性,現在我只是通過混合Jython和Java的

Jython的側解決這個問題:

進口javaArray

java.getType(paramType)

java side: //javaArray.java

公共靜態類的getType(字符串strType)

{

if (strType.equals("[I")) 
     return (new int[0]).getClass(); 

}

真的需要挖掘更多的Jython,Java中,如果你想破解在上面。

謝謝。

//

//在2015年11月26日

真是丟人寫這樣的代碼,而無需使用Class.forName加入.........

公衆靜態類的getType(字符串strType)

{

//try...catch 
ret = Class.forName(strType); 
return ret; 

}