从Jython PyList传递到Java int []

时间:2015-11-22 10:15:45

标签: reflection jython

现在我被这个具体问题所困扰,请求你们帮忙。

关键字: Java反射,Jython PyList,NoSuchMethodException

Java方面:

targetMethod( int [] )是我想通过反射调用的方法。请注意int [] param。

Jython Side:

l_params = [1,2,3]

问题:

当我尝试通过传递类型(l_params)进行反射调用时,获得以下信息:

java.lang.NoSuchMethodException: targetMethod(org.python.core.PyList)     在java.lang.Class.getDeclaredMethod(未知来源)

那么如何应对呢?希望得到你的光明。

1 个答案:

答案 0 :(得分:0)

Yeap,一种可能的解决方案 - 代理:

Jython ---- Java代理 ---- 目标方法

虽然目标方法是不可控制的,但我们可以在Java代理中做任何我们想做的事。

但是如何在没有代理的情况下解决这个问题呢?

//在2015/11/23添加

由于jython的灵活性,现在我只需通过混合使用jython和java

来解决这个问题

jython side:

import javaArray

java.getType(paramType)

java方面: //javaArray.java

public static Class getType(String strType)

{

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

}

如果你想破解它,真的需要更多地了解jython,java。

感谢。

//

//于2015/11/26添加

在不使用Class.forName .........

的情况下编写这样的代码真是太遗憾了

public static Class getType(String strType)

{

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

}