Java中isAssignableFrom()方法與instanceof()方法用法

來源:互聯網
上載者:User

標籤:

一句話總結:

  • isAssignableFrom()方法是從類繼承的角度去判斷,instanceof()方法是從執行個體繼承的角度去判斷。
  • isAssignableFrom()方法是判斷是否為某個類的父類,instanceof()方法是判斷是否某個類的子類。
1. Class.isAssignableFrom()方法

Class.isAssignableFrom()是用來判斷一個類Class1和另一個類Class2是否相同或是另一個類的子類或介面。   
格式為:       

Class1.isAssignableFrom(Class2) 

  調用者和參數都是java.lang.Class類型。   

2.Class.instanceof()方法

Class.instanceof()是用來判斷一個對象執行個體是否是一個類或介面的或其子類子介面的執行個體。  
格式是:

obj instanceof TypeName  

  第一個參數是對象執行個體名,第二個參數是具體的類名或介面名,例如   String,InputStream。其傳回值為boolean。

3.具體用法

轉自(http://sunnylocus.iteye.com/blog/555676)

package com.bill99.pattern;public class AssignableTest {        public AssignableTest(String name) {    }    /**     * 判斷一個類是否是另一個類的父類     * 是列印true     * 否列印false     */    public static void testIsAssignedFrom1() {        System.out.println("String是Object的父類:"+String.class.isAssignableFrom(Object.class));    }    /**     * 判斷一個類是否是另一個類的父類     * 是列印true     * 否列印false     */    public static void testIsAssignedFrom2() {        System.out.println("Object是String的父類:"+Object.class.isAssignableFrom(String.class));    }    /**     * 判斷一個類是否和另一個類相同     * 是列印true     * 否列印false     */    public static void testIsAssignedFrom3() {        System.out.println("Object和Object相同:"+Object.class.isAssignableFrom(Object.class));    }    /**     * 判斷str是否是Object類的執行個體     * 是列印true     * 否列印false     */    public static void testInstanceOf1() {        String str = new String();        System.out.print("str是Object的執行個體:");        System.out.println(str instanceof Object);    }    /**     * 判斷o是否是Object類的執行個體     * 是列印true     * 否列印false     */    public static void testInstanceOf2() {        Object o = new Object();        System.out.print("o是Object的執行個體:");        System.out.println(o instanceof Object);    }        public static void main(String[] args) {        testIsAssignedFrom1();        testIsAssignedFrom2();        testIsAssignedFrom3();        testInstanceOf1();        testInstanceOf2();    }}
結果:

String是Object的父類:false
Object是String的父類:true
Object和Object相同:true
str是Object的執行個體:true
o是Object的執行個體:true

 

Java中isAssignableFrom()方法與instanceof()方法用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.