2 つの異なるオブジェクトのフィールド値を一般的な方法で比較しようとしています。2 つのオブジェクトを取り込んでフィールドを取得し、ループ内のフィールドを比較して、同じでない場合はフィールドをリストに追加する関数 (以下を参照) があります。これはこれを行う適切な方法ですか?
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()
私はこのような方法がないことを知っていますが、別の方法があるかもしれませんか???