Java:从属性名称获取值属性名称并在运行时键入unkown

问题描述

我有两个对象-输出(具有20个字段或属性)和一个对象o,其中某些字段(从1到5)。

我想比较对象o的所有这5个字段的值 在输出对象中包含它们的值。

说输出对象的属性为a到z。对象o具有a到c的属性,因此我想将output.a,output.b和output.c的值与o.a,o.b和o.c

进行比较

请注意,我不知道o.a,o.b和o.c是否存在,但我正在从字段中动态检索它们的属性:

下面是代码。我已经在行中标记了什么在工作,什么不在工作。我不知道如何键入强制转换,因为我不知道属性名称。

  private void CompareObjects(Output output,Object o) throws IllegalAccessException,NoSuchFieldException {

        Class<?>  r = o.getClass();
        Field[] fields = respclass.getDeclaredFields();
        for (Field field : fields) {

          String fname =   field.getType().getSimpleName();
          print((field.getName())output.getClass().getDeclaredField(fname));// NOT Working error line,not able to typecast it with the field.getName()
//          print(field.getType())output.getClass().getDeclaredField(fname)); // NOT Working

        }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)