Comparando valores de campo usando la reflexión
Estoy tratando de comparar los valores de campo de dos objetos diferentes de una manera genérica. Tengo una función (que se ve a continuación) que toma dos Objetos y luego obtiene los campos y luego compara los campos en un bucle y agrega los campos a una lista si no son los mismos. ¿Es esta la forma correcta de hacer esto?
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();
}
}
Estaba buscando en Google y vi que C # tenía como una clase PropertyInfo. ¿Tiene Java algo como eso? TAMBIÉN, hay una manera de hacer comof.getFieldValue()
-Sé que no hay un método como este pero tal vez hay otra manera ???