(1)instanceof
instanceof 是 java的关键字之一,用来判断是否是某个的实例对象。
通常格式是:"我" instanceof " 你" 。"我" 是一种实例类型,你是 某个类/接口的名称。
例子:
Class A {}
A a = new A();
System.out.println(a instanceof A); //true
(2)isInstance
isInstance用来判断被比较的实例是不是比较类型的。
通常格式是:"我".isInstace("你")。"我"是Class对象。"你"是实例对象。
例子:
Class A {}
Class B {}
System.out.println(A.isInstance(new A)); // true
System.out.println(A.isInstance(new B)); // false
System.out.println(B.isInstance(new B)); // true
System.out.println(B.isInstance(new A)); // false
(3)isAssignableFrom
assgin单词含义 赋值。所以isAssignableFrom可以理解为能从后面的什么来赋值给他吗?那么是什么情况可以赋值呢?通常我们认为要么是同类型的,要么认为是把子类型赋值给父类型(类型安全)。所以判断的是被比较的,是不是比较类型的子类或者实现了比较类型的接口。
通常格式是:"我".isAssignableFrom("你".class)。"我"是Class对象。"你"是Class名称。
例子:
Class P {}
Class S extend P {}
System.out.println(S.isAssignableFrom(S.class)); //true
System.out.println(P.isAssignableFrom(P.class)); //true
System.out.println(S.isAssignableFrom(P.class)); //false
System.out.println(P.isAssignableFrom(S.class)); //true