如何访问Parent类Object中定义的ActionForm类型的所有子属性

时间:2015-07-31 10:19:23

标签: java reflection

请分享您的想法以解决以下问题陈述。

目标: 我正在尝试使用反射在Java 1.6中开发一个实用程序。此实用程序将访问每个属性,非可空属性将通过特定的验证例程传递。

问题陈述: 我能够访问类ParentBean,ClassB和ClassC的属性。但是我无法访问ClassD,ClassE的属性。我的代码就在这里。

{{1}}

1 个答案:

答案 0 :(得分:0)

                    try {
                            StringBuffer fieldName1 = getFieldName(field2);
                            m = field.getType().getMethod(fieldName1.toString(),
                                    new Class <  ?  > []{});
                            //at this point m is overwritten
                            try {
                                String invokingClass = field.getType().getName();
                                // Below line throws error: java.lang.IllegalArgumentException: object is not an instance of declaring class
                                Object formObj2 = m.invoke(formObj, null);
                            } catch (NullPointerException npe) {
                                npe.printStackTrace();
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }

你的代码中有一点覆盖方法m,m成为对象formObj(chldFormObj)中的字段的方法,稍后你得到错误,因为你试图从chldFormObj上调用一个方法fromObj。

您应该在对象chldFormObj上调用该方法。