[注意:我是java的初学者]
我尝试按名称调用对象,然后尝试按名称调用其方法,
但此代码抛出异常java.lang.NoSuchMethodException:
Field mainClassField = mainObject.getClass()
.getField( dataObject.callObject );
/* callObject is an another object */
Object callObject = mainClassField.get( mainObject );
Method callMethod = callObject.getClass()
.getMethod( dataObject.callMethod ); << error on this line
callMethod.invoke(callObject, dataObject);
[注意:我从actionscript 3到AMF传递dataObject]
调用目标代码:
public class UserCallController extends Controller {
public void getUserById(DataTransferObject dataObject) {
Ppvchat mainClass = _inst._mainClass;
dataObject.data.put("userData",
mainClass.userModel.getById( dataObject.data.getString("id") ));
}
}
感谢。
答案 0 :(得分:2)
如果NoSuchMethodException
这样的方法确实不存在。
因此,请检查以下内容。
无论如何你的代码似乎错了。
callObject.getClass().getMethod( dataObject.callMethod );
表示您认为该方法没有参数。
callMethod.invoke(callObject, dataObject);
表示您认为此方法具有可从dataObject
分配的参数。