对象&方法名称

时间:2012-09-04 18:46:32

标签: java exception methods

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

}

感谢。

1 个答案:

答案 0 :(得分:2)

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

  1. 你在和哪个班级打交道。
  2. 你打算打什么方法。仔细检查方法名称和签名。
  3. 无论如何你的代码似乎错了。

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

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