isAssignableFrom() 與 instanceof

 1,Class.isAssignableFrom(Class cls) 判定此 Class 對象所表示的類或接口與指定的 Class 參數cls所表示的類或接口是否相同,或是否是其超類或(超)接口,如果是則返回 true,否則返回 false。

2,instanceof   是用來判斷一個對象實例是否是一個類或接口或其子類子接口的實例。  
    格式是:   oo   instanceof   TypeName    
                     interImpl instanceof inter
    第一個參數是對象實例名,第二個參數是具體的類名或接口名,例如   String,InputStream。

下面是上面二者的例子:

import java.util.Collection;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Properties;
import java.util.Set;

public class TestClass {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // 測試isAssignableFrom
        System.out.println(String.class.isAssignableFrom(Object.class));
        System.out.println(Comparable.class.isAssignableFrom(String.class));
        System.out.println(Set.class.isAssignableFrom(Collection.class));
        System.out.println(Collection.class.isAssignableFrom(Set.class));
        System.out.println(Set.class.isAssignableFrom(HashSet.class));
        //測試instanceof
        System.out.println("===============================================");
        Comparable com = new String();
        System.out.println(com instanceof String);
        Hashtable table = new Hashtable();
        System.out.println(table instanceof Properties);
    }

}

結果:
false
true
false
true
true
===============================================
true
false
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章