使用Data类和normal类会产生不同的输出,这背后的原因是什么?
data class User(val a:String)
val obj1 = User("asd")
val obj2 = User("asd")
if(obj1 == obj2) println("true")
if(obj1===obj2) println("true")
if(obj1.equals(obj2)) println("true")
//this gives the output of true for 1st and 3rd print statement.
使用常规类
class User(val name: String)
val obj1 = User("asd")
val obj2 = User("asd")
if(obj1 == obj2) println("true")
if(obj1===obj2) println("true")
if(obj1.equals(obj2)) println("true")
//this does not print anything.
数据类比较实例的内容(在指针地址不同的情况下),不像常规类(只比较指针地址)
你可以从这个问题中查看data类的详细实现