在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享java中instanceof和getClass()的区别分析,希望可以对大家能有小小的帮助。
【 tulaoshi.com - 编程语言 】
class A { }
class B extends A { }
Object o1 = new A();
Object o2 = new B();
o1 instanceof A = true
o1 instanceof B = false
o2 instanceof A = true // ================ HERE
o2 instanceof B = true
o1.getClass().equals(A.class) = true
o1.getClass().equals(B.class) = false
o2.getClass().equals(A.class) = false // ===============HERE
o2.getClass().equals(B.class) = true
getClass() will be useful when you want to make sure your instance is NOT a subclass of the class you are comparing with.
一个非常完美的equals方法的写法:
代码如下:
public boolean equals(Object otherObject)
{
// a quick test to see if the objects are identical
if (this == otherObject) return true;
// must return false if the explicit parameter is null
if (otherObject == null) return false;
// if the classes don't match, they can't be equal
if (getClass() != otherObject.getClass()) return false;
// now we know otherObject is a non-null Employee
Employee other = (Employee) otherObject;
// test whether the fields have identical values
return name.equals(other.name) && salary == other.salary && hireDay.equals(other.hireDay);
}
来源:http://www.tulaoshi.com/n/20160219/1593776.html
看过《java中instanceof和getClass()的区别分析》的人还看了以下文章 更多>>