标签:OLE object类 public java bsp 创建对象 except 方法 定义
在Java库中包含150多个 equals 方法的实现,包括使用 instanceof 检测、调用 getClass 检测、捕获 ClassCastException 或者什么也不做。
String类中的 equals() 方法可以通过检测两个字符串的引用、类型、长度、字符等是否相同,来判断两个字符串是否相等。
切记:不要用 == 来比较两个字符串, == 只能确定两个字符串是否在一个位置。如果通过 new 的方式给String赋值的话,就可能会出错。
Object这个始祖类中的 equals 方法用于检测一个对象是否等于另一个对象,主要是判断两个对象是否有相同的引用。如果我们在子类中定义 equals 方法时,会先调用超类的 equals 方法,失败则不能相等;如果超类检测所有的域都相等,在比较子类的实例域。
因此,博主编写了一个尽可能显得完美的 equals 方法:
1 public boolean equals(Object otherObject){ 2 //查看参数是否为空,如果为空,返回false 3 if(otherObject == null) return false; 4 5 //查看两个对象是否有同一个引用 6 if(this != otherObject) return false;//如果没有重写Object类中的equals方法 时,判断两个对象是否相等就等同于 “==” 7 8 //查看两个对象是否属于同一个类 9 if(getClass() != otherObject.getClass()) return false; 10 11 //判断对象是不是由我们了解的那个类创建的对象 12 //instanceof是Java中的二元运算符,左边是对象,右边是类;当对象是右边类或子类所创建对象时,返回true;否则,返回false。 13 if(!(otherObject instanceof ClassName)) return false; 14 15 //将otherObject强行转换为相应的类类型,对需要比较的域进行比较。 == 比较基本类型域, 使用equals比较对象域。 16 //如果所有的域都相等,则返回true,否则就是false 17 ClassName other.field1 && Objects.equals() = (ClassName)otherObject; 18 return field1 == other.field1 19 && Objects.equals(field2,other.field2) 20 && ...; 21 22 }
博主是个初学者,有些不足之处还请指出,谢谢。
标签:OLE object类 public java bsp 创建对象 except 方法 定义
原文地址:https://www.cnblogs.com/mysmeng/p/13657743.html