当我从Jython脚本调用重载的Java方法时,我看到了一些我不理解的奇怪行为.
这是我的Java类:
public class TestClass {
public static float[][][] overloaded(float[][][] x) {
return x;
}
public static float[][][][] overloaded(float[][][][] x) {
return x;
}
public static float[][][] zeros(int n1, int n2, int n3) {
return new float[n3][n2][n1];
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的Jython脚本:
import time,TestClass
n1,n2,n3 = 250,250,250
z = TestClass.zeros(n1,n2,n3)
start = time.time()
TestClass.overloaded([z,z,z])
print 'time =',(time.time()-start)
Run Code Online (Sandbox Code Playgroud)
这个Jython脚本大约需要1分钟才能运行,但如果我在TestClass中注释掉第一个方法,那么脚本几乎不需要任何时间.我很困惑为什么在方法重载时需要这么长时间.我在这里错过了什么吗?