我正在尝试以通用方式比较两个不同对象的字段值。我有一个函数(见下文),它接受两个对象,然后获取字段,然后在循环中比较字段,如果字段不相同,则将字段添加到列表中 - 这是正确的方法吗?
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()
- 我知道没有这样的方法,但也许还有另一种方法???