我有一个JComboBox,通过classLoader包含动态加载的java类。创建对象后,我想传递给它的一个方法JTextField [] [[] as arg。
final JTextField[][] gameFields = new JTextField[12][12];
Object runtimeStrategyObject = strategyClass.newInstance();
Method method = strategyClass.getDeclaredMethod("move",JTextField[][].class);
method.invoke(runtimeStrategyObject, gameFields);
方法我想调用
public void move(JTextArea[][] gameFields) {
// method body
}
问题是我得到“NoSuchMethodException”。任何想法如何解决它?
答案 0 :(得分:2)
您的move(JTextArea[][] gameFields)
方法的参数类型为JTextArea[][].class
。因此,正确的方法应该是通过将getDeclaredMethod
作为参数类型传递来尝试使用JTextArea[][].class
获取函数:
Method method = strategyClass.getDeclaredMethod("move", JTextArea[][].class);
或者,将move
方法参数类型更改为JTextField[][]
:
public void move(JTextField[][] gameFields) {
// method body
}
查看文档:{{3}}