daniel.lindeman
08/21/2016, 4:23 PMimport kotlin.reflect.*
fun main(args: Array<String>){
val john = User("John", 23)
val tom = User("Tom", 23)
compare(john, tom)
}
data class User(val name: String, var age: Int)
fun compare(user1 :User, user2 : User)
{
val differences: MutableList<Any> = arrayListOf()
for (member in User::class.memberProperties){
if(member.get(user1) != member.get(user2)){
differences.add(member)
}
}
println(differences)
}
Much better solution @kirillrakhman pointed out:
val differences = User::class.memberProperties.filter { it.get(user1) != it.get(user2) }