instanceof、isInstance、isAssignableFrom的用法介绍

(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



你可能感兴趣的:(java,instaceof,Java语言特性)