我试图以通用方式比较两个不同对象的字段值.我有一个函数(如下所示),它接收两个对象,然后获取字段,然后比较循环中的字段,如果它们不相同,则将字段添加到列表中 - 这是正确的方法吗?
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();
}
}
Run Code Online (Sandbox Code Playgroud)
我在谷歌搜索,我看到C#有一个PropertyInfo类 - Java有这样的东西吗?还有,有办法做f.getFieldValue()- 我知道没有这样的方法,但也许有另一种方式???