Java反射-如何调用getter / setter方法?

战略

我试图调用对象中获得的某些属性的set方法,我的代码如下所示:

    String[] fieldsStringName = (((CacheObject)currentObject).getFieldsToString(false)).split(", ");
    String methodName = "";

    for (int i = 0; i < objectInputArr.length; i++) {
        methodName = "set" + fieldsStringName[i];

        Method methodSetProperty = currentObject.getClass().getMethod(methodName);   <<----error occurs here
        methodSetProperty.invoke(currentObject, objectInputArr[i]);
    }

我得到的错误是:

Exception in thread "main" java.lang.NoSuchMethodException: model.Book.setPagesAmount()
    at java.lang.Class.getMethod(Unknown Source)
    at CahceSystem.createNewObject(CahceSystem.java:84)
    at CahceSystem.main(CahceSystem.java:50)

所请求的setter方法在该类以及它的超类(仅继承的属性)中都写得很好,我所有的setter方法都类似于:

public void setPagesAmount(int pagesAmount) {
    this.pagesAmount = pagesAmount;
}

有什么建议如何解决这个问题?

Aioobe
currentObject.getClass().getMethod(methodName);

由于方法可以重载,因此仅方法名称不足以查找该方法。您还需要提供参数的类型(并且setter通常不是no-arg方法)。

尝试类似

currentObject.getClass().getMethod(methodName, objectInputArr[i].getClass());
                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

java中如何通过反射调用setter方法

来自分类Dev

使用循环变量和Java反射调用setter方法

来自分类Dev

如何通过java反射为setter方法设置变量

来自分类Dev

如何分析反射调用的Java方法

来自分类Dev

Java反射调用方法NoSuchMethodException

来自分类Dev

调用方法的对象-Java反射

来自分类Dev

如何通过反射C#在setter中调用方法

来自分类Dev

Java setter和getter方法

来自分类Dev

无法通过Java反射调用方法:NoSuchMethodException

来自分类Dev

如何使用Java反射调用Android Dalvik内部方法?

来自分类Dev

Java getter / setter字段方法的缩写形式

来自分类Dev

如何通过在java中使用反射直接在bean类的私有Setter方法中设置值

来自分类Dev

Java-在同步的setter函数期间调用同步的getter函数是否是操作共享变量的正确方法?

来自分类Dev

Java Reflection:为集合类型Object调用Setter和Getter方法

来自分类Dev

Java-在同步的setter函数期间调用同步的getter函数是否是操作共享变量的正确方法?

来自分类Dev

调用方法后的Java反射,该方法未引发异常

来自分类Dev

Java:通过功能界面中的反射调用方法

来自分类Dev

Java反射:从超类继承的类中调用GetDeclaredFields()方法

来自分类Dev

在Java中使用反射调用重写的实例方法

来自分类Dev

使用Java反射调用具有通用参数的方法

来自分类Dev

Java 8:使用反射调用接口的静态方法

来自分类Dev

Java:通过功能界面中的反射调用方法

来自分类Dev

使用多个变量调用 Java LambdaMetaFactory 方法以避免反射

来自分类Dev

java使用getter和setter方法并返回0

来自分类Dev

继承Java obj的所有getter / setter方法

来自分类Dev

java使用getter和setter方法并返回0

来自分类Dev

Java:调用带反射的方法时如何获得完整的故障跟踪?

来自分类Dev

如何在Java类的公共成员中使用反射来调用方法?

来自分类Dev

如何使用反射调用带有.class(非对象)参数的java中的方法

Related 相关文章

  1. 1

    java中如何通过反射调用setter方法

  2. 2

    使用循环变量和Java反射调用setter方法

  3. 3

    如何通过java反射为setter方法设置变量

  4. 4

    如何分析反射调用的Java方法

  5. 5

    Java反射调用方法NoSuchMethodException

  6. 6

    调用方法的对象-Java反射

  7. 7

    如何通过反射C#在setter中调用方法

  8. 8

    Java setter和getter方法

  9. 9

    无法通过Java反射调用方法:NoSuchMethodException

  10. 10

    如何使用Java反射调用Android Dalvik内部方法?

  11. 11

    Java getter / setter字段方法的缩写形式

  12. 12

    如何通过在java中使用反射直接在bean类的私有Setter方法中设置值

  13. 13

    Java-在同步的setter函数期间调用同步的getter函数是否是操作共享变量的正确方法?

  14. 14

    Java Reflection:为集合类型Object调用Setter和Getter方法

  15. 15

    Java-在同步的setter函数期间调用同步的getter函数是否是操作共享变量的正确方法?

  16. 16

    调用方法后的Java反射,该方法未引发异常

  17. 17

    Java:通过功能界面中的反射调用方法

  18. 18

    Java反射:从超类继承的类中调用GetDeclaredFields()方法

  19. 19

    在Java中使用反射调用重写的实例方法

  20. 20

    使用Java反射调用具有通用参数的方法

  21. 21

    Java 8:使用反射调用接口的静态方法

  22. 22

    Java:通过功能界面中的反射调用方法

  23. 23

    使用多个变量调用 Java LambdaMetaFactory 方法以避免反射

  24. 24

    java使用getter和setter方法并返回0

  25. 25

    继承Java obj的所有getter / setter方法

  26. 26

    java使用getter和setter方法并返回0

  27. 27

    Java:调用带反射的方法时如何获得完整的故障跟踪?

  28. 28

    如何在Java类的公共成员中使用反射来调用方法?

  29. 29

    如何使用反射调用带有.class(非对象)参数的java中的方法

热门标签

归档