gpt4 book ai didi

java - 按名称的对象和方法

转载 作者:行者123 更新时间:2023-12-02 07:35:41 25 4
gpt4 key购买 nike

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

}

谢谢。

最佳答案

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

  1. 您正在处理哪个类别。
  2. 您想调用什么方法。仔细检查方法名称和签名。

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

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

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

关于java - 按名称的对象和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12269566/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com