I wonder if anyone knows any *generic* method that loops through 2 instances of the same class and find the difference in terms of their fields.
What would such a method return? The diff(...) method in your example is void. You could have an equals method that uses reflection (I think EqualsBuilder
from Jakarta commmons does something like that).