1,Class
.isAssignableFrom(
Class cls) 判定此
格式是: 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
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