Already referred few question here and there.
Use Case -
1.) Given any Two objects, compare both of them property by property.
2.) It will contains Collections also, now compare collections of both the objects, now inside collection same data can be upside down, meaning say i have List<Address>, it contains two entries in both (say Residential Address, Office Address), but in both list the data may be at different indexes.
3.) Need to create 3rd Object of same type, with similar data copied, and properties set to null with different data. 
4.) It might have reference classes as well.
I tired many solutions but stuck somewhere or the other, i am thinking of writing some generic solution. Though of generating two xml's out of the two objects and then comparing node by node, but just want to get more options.
Or How much Java reflection is stronger in this case.