Сравнение значений полей с использованием отражения

Я пытаюсь сравнить значения полей двух разных объектов в общем виде. У меня есть функция (см. Ниже), которая принимает два объекта, а затем получает поля, а затем сравнивает поля в цикле и добавляет поля в список, если они не совпадают - это правильный способ сделать это?

public void compareFields(Object qa, Object qa4) throws FieldsNotEqualException
{

  Field[] qaFields = qa.getClass().getFields();
  Field[] qa4Fields = qa4.getClass().getFields();

  for(Field f:qaFields) 
  { 

    for(Field f4:qa4Fields)
    {
       if(f4.equals(f))
       {
           found = true;
           break;
       }
       else
       {
           continue;
       }
    }
  }

 if(!found)
 {
    report.add(/*some_formatted_string*/) //some global list 
    throw new FieldsNotEqualException();
 }
}

Я гуглил и увидел, что в C # есть класс PropertyInfo - есть ли в Java что-то подобное? ТАКЖЕ, есть ли способ сделать какf.getFieldValue() -Я знаю, что нет такого способа, но, может быть, есть другой способ ???

Ответы на вопрос(3)

Ваш ответ на вопрос