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



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值