最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java instanceof和getClass()區(qū)別實例解析

 更新時間:2020年07月29日 09:18:36   作者:htj10  
這篇文章主要介紹了Java instanceof和getClass()區(qū)別實例解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

對象 instanceof 類名,表示 對象是類名的實例,或者是其子類的實例,返回 true,否則返回 false。

對象.getClass() == 類名.class ,表示 只有對象是該類的實例,才返回 true

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.

例子:

class Base{
  
}
class Derived extends Base{
  
}

public class Hello {
  public static void main(String[] args) throws ParseException {
    Derived d = new Derived();
    boolean bRet;
    bRet = d instanceof Derived;//true
    bRet = d instanceof Base;//true
    bRet = d.getClass() == Derived.class;//true
//   bRet = d.getClass() == Base.class;// 出錯
    bRet = d.getClass().equals(Base.class);//false
  }
}

使用,重寫equals

class Person{
  private String id;
  private String name;
  //重寫equals()方法,提供自定義的相等標(biāo)準(zhǔn)
  public boolean equals(Object obj){
    if(this == obj)//若為同一個對象
      return true;
    //只有當(dāng)obj是Person對象
    if(null != obj && obj.getClass() == Person.class){
      Person p = (Person)obj;
      if(id.equals(obj).getId() && ...){
        return true;
      }
    }
    return false;
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java后臺線程操作示例【守護線程】

    Java后臺線程操作示例【守護線程】

    這篇文章主要介紹了Java后臺線程操作,結(jié)合實例形式分析了java守護線程相關(guān)原理、操作技巧與使用注意事項,需要的朋友可以參考下
    2019-09-09
  • Java中synchronized鎖的深入理解

    Java中synchronized鎖的深入理解

    這篇本文主要對Java中synchronized鎖進行深入理解,文中通過synchronized的優(yōu)化,synchronized的實現(xiàn)原理及synchronized的升級過程來介紹Java中synchronized鎖,感興趣的同學(xué)可以跟著小編一起來學(xué)習(xí)
    2023-05-05
  • SpringBoot?spring.factories加載時機分析

    SpringBoot?spring.factories加載時機分析

    這篇文章主要為大家介紹了SpringBoot?spring.factories加載時機分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • jvm調(diào)優(yōu)的幾種場景(小結(jié))

    jvm調(diào)優(yōu)的幾種場景(小結(jié))

    本文主要介紹了jvm調(diào)優(yōu)的幾種場景,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • JAVA實現(xiàn)掃描線算法(超詳細)

    JAVA實現(xiàn)掃描線算法(超詳細)

    掃描線算法就是從Ymin開始掃描,然后構(gòu)建出NET,之后根據(jù)NET建立AET。接下來本文通過代碼給大家介紹JAVA實現(xiàn)掃描線算法,感興趣的朋友一起看看吧
    2019-10-10
  • selenium高效應(yīng)對Web頁面元素刷新的實例講解

    selenium高效應(yīng)對Web頁面元素刷新的實例講解

    今天小編就為大家分享一篇selenium高效應(yīng)對Web頁面元素刷新的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • JAVA中的Launcher類解析

    JAVA中的Launcher類解析

    這篇文章主要介紹了JAVA中的Launcher類解析,Launcher作為JAVA應(yīng)用的入口,根據(jù)雙親委派模型,Laucher是由JVM創(chuàng)建的,它類加載器應(yīng)該是BootStrapClassLoader, 這是一個C++編寫的類加載器,是java應(yīng)用體系中最頂層的類加載器,需要的朋友可以參考下
    2023-09-09
  • SpringBoot整合flyway實現(xiàn)自動創(chuàng)建表的方法

    SpringBoot整合flyway實現(xiàn)自動創(chuàng)建表的方法

    這篇文章主要介紹了SpringBoot整合flyway實現(xiàn)自動創(chuàng)建表的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 關(guān)于mybatis遇到Integer類型的參數(shù)時動態(tài)sql需要注意條件

    關(guān)于mybatis遇到Integer類型的參數(shù)時動態(tài)sql需要注意條件

    這篇文章主要介紹了關(guān)于mybatis遇到Integer類型的參數(shù)時動態(tài)sql需要注意條件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 解決dubbo錯誤ip及ip亂入問題的方法

    解決dubbo錯誤ip及ip亂入問題的方法

    今天小編就為大家分享一篇關(guān)于解決dubbo錯誤ip及ip亂入問題的方法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03

最新評論

福海县| 洪雅县| 高要市| 长乐市| 噶尔县| 若羌县| 伊通| 静海县| 湾仔区| 银川市| 安福县| 馆陶县| 肥东县| 新乐市| 蕉岭县| 景宁| 婺源县| 辽阳市| 新野县| 江西省| 曲水县| 秭归县| 沾化县| 宝清县| 井陉县| 灌阳县| 崇信县| 浏阳市| 浮梁县| 朝阳市| 林西县| 江北区| 故城县| 永昌县| 绵竹市| 石景山区| 堆龙德庆县| 兰溪市| 三河市| 汉川市| 诏安县|