試すMyClass.class.getDeclaredFields()
これにより、クラス内のすべてのフィールドのリストが取得されます。-namefield.getName()を取得するために使用できます。String
次に、フィールドを取得するためにisEqual()使用できますMyClass.class.getField(fieldName)。特定のインスタンスのこのfield.get(myClass)フィールドの値を取得できます。
ただし、fieldNames を渡す代わりに、Field[]. Fieldこれにより、 から への変換とへの変換がスキップStringされFieldます。
これについて詳しく知りたい場合は、Reflectionfrom Java をご覧ください。
幸運を!
例
boolean isEqual(MyClass obj1, MyClass obj2, Field[] fields) {
for(Field field : fields)
if(!field.get(obj1).equals(field.get(obj2)))
return false;
return true;
}
それを呼び出す:
Class cls = MyClass.class;
isEqual(obj1, obj2, { cls.get("myField"), cls.get("anotherField") });