java中instanceof和getClass()的区别分析

陡变吧WRI

陡变吧WRI

2016-02-19 10:12

在这个颜值当道,屌丝闪边的时代,拼不过颜值拼内涵,只有知识丰富才能提升一个人的内在气质和修养,所谓人丑就要多学习,今天图老师给大家分享java中instanceof和getClass()的区别分析,希望可以对大家能有小小的帮助。

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 

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

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;

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

      // 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);
   }

展开更多 50%)
分享

猜你喜欢

java中instanceof和getClass()的区别分析

编程语言 网络编程
java中instanceof和getClass()的区别分析

java中Hashtable和HashMap的区别分析

编程语言 网络编程
java中Hashtable和HashMap的区别分析

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

java中ArrayList 、LinkList的区别分析

编程语言 网络编程
java中ArrayList 、LinkList的区别分析

Java overload和override的区别分析

编程语言 网络编程
Java overload和override的区别分析

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

java中的值传递和引用传递的区别分析

编程语言 网络编程
java中的值传递和引用传递的区别分析

java_String和StringBuffer区别分析

编程语言 网络编程
java_String和StringBuffer区别分析

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

Windows 7在桌面上总是显示大小写锁定和数字锁定图标如何设置

Windows 7在桌面上总是显示大小写锁定和数字锁定图标如何设置

CJJ专用ASP类库中的某个class

CJJ专用ASP类库中的某个class
下拉加载更多内容 ↓