0

[注意:我是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);

[注意:我通过 AMF 从 actionscript 3 传递 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") ));
    }

}

谢谢。

4

1 回答 1

2

如果NoSuchMethodException这种方法确实不存在。因此,请检查以下内容。

  1. 你在处理什么课。
  2. 你想调用什么方法。仔细检查方法名称和签名。

无论如何,您的代码似乎是错误的。

callObject.getClass().getMethod( dataObject.callMethod );表示您认为该方法没有参数。

callMethod.invoke(callObject, dataObject);表示您认为此方法具有可从 分配的参数dataObject

于 2012-09-04T18:56:15.330 回答