📅  最后修改于: 2023-12-03 15:16:28.189000             🧑  作者: Mango
equals(Object obj)
方法是 Java 中的一个默认方法,用于比较两个对象是否相等。在 Java 中,所有的类都继承了 java.lang.Object
,所以它的子类都可以使用该方法来比较两个对象是否相等。
在 java.time
包中,ZoneId
类也实现了 equals(Object obj)
方法,用于比较两个时区对象是否相等。下面是该方法的源码:
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj instanceof ZoneId) {
ZoneId other = (ZoneId) obj;
return getId().equals(other.getId());
}
return false;
}
如上所示,equals(Object obj)
方法首先比较两个对象的引用是否相等,若相等则直接返回 true
,否则进入下一步比较。obj instanceof ZoneId
条件用于判断传入的对象是否为 ZoneId
类型,若是则执行 getId().equals(other.getId())
方法比较两个时区对象的 ID 是否相等,若相等则返回 true
,否则返回 false
。
下面是一个示例,演示如何使用 equals(Object obj)
方法比较两个时区对象是否相等:
import java.time.ZoneId;
public class ZoneIdExample {
public static void main(String[] args) {
// 在 ZoneId 中,of() 方法用于获取时区对象
ZoneId zone1 = ZoneId.of("Europe/Paris");
ZoneId zone2 = ZoneId.of("Asia/Tokyo");
ZoneId zone3 = ZoneId.of("Europe/Paris");
// 使用 equals() 方法比较两个时区对象是否相等
System.out.println(zone1.equals(zone2)); // false
System.out.println(zone1.equals(zone3)); // true
}
}
如上所示,我们通过 ZoneId.of(String zoneId)
方法获取了三个时区对象,分别是 Europe/Paris
、Asia/Tokyo
、Europe/Paris
。然后使用 equals(Object obj)
方法比较了其中的两个时区对象,结果分别为 false
和 true
。
总结:
equals(Object obj)
方法用于比较两个对象是否相等。ZoneId
类实现了 equals(Object obj)
方法,用于比较两个时区对象是否相等。equals(Object obj)
方法首先比较两个对象的引用是否相等,若相等则直接返回 true
,否则进入下一步比较。obj instanceof ZoneId
条件用于判断传入的对象是否为 ZoneId
类型,若是则执行 getId().equals(other.getId())
方法比较两个时区对象的 ID 是否相等,若相等则返回 true
,否则返回 false
。