public boolean equals(Object obj) { User user=(User)obj; return this.id==user.id;
[quote=引用 3 楼 northwesternwind 的回复:] equals默认是比较地址,但是对于User.id是不是比较地址要根据情况看。 1. User.id为int或者long ==>比较数值 2. User.id为Integer ==>比较数值,因为Integer类重写了equals 3. User.id 为String ==>比较id的字符串内容,因为String类重写了equals. 这么回答怎么样?
equals默认是比较地址,但是对于User.id是不是比较地址要根据情况看。 1. User.id为int或者long ==>比较数值 2. User.id为Integer ==>比较数值,因为Integer类重写了equals 3. User.id 为String ==>比较id的字符串内容,因为String类重写了equals. 这么回答怎么样?
equals源代码是使用==实现两对象比较的,即默认比较的是两个对象的内存地址。 equals改写后使用==比较两个对象,为什么此处表示的是比较两对象的值? public boolean equals(Object obj) { User user=(User)obj; return this.id==user.id;
62,614
社区成员
307,326
社区内容
加载中
试试用AI创作助手写篇文章吧