試すMyClass.class.getDeclaredFields()
これにより、クラス内のすべてのフィールドのリストが取得されます。-namefield.getName()
を取得するために使用できます。String
次に、フィールドを取得するためにisEqual()
使用できますMyClass.class.getField(fieldName)
。特定のインスタンスのこのfield.get(myClass)
フィールドの値を取得できます。
ただし、fieldNames を渡す代わりに、Field[]
. Field
これにより、 から への変換とへの変換がスキップString
されField
ます。
これについて詳しく知りたい場合は、Reflection
from 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") });