现在我被这个具体问题所困扰,请求你们帮忙。
关键字: 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(未知来源)
那么如何应对呢?希望得到你的光明。
答案 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;
}