您的位置:首页 > 编程语言 > Java开发

spring3 学习 isAssignableFrom 与 instanceof 的认识

2014-04-18 15:44 218 查看
instanceof 针对实例

isAssignableFrom针对class对象

isAssignableFrom 是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。

通常调用格式是

Class1.isAssignableFrom(Class2)

调用者和参数都是 java.lang.Class 类型。



而 instanceof 是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。

格式是: oo instanceof TypeName

interImpl instanceof inter

第一个参数是对象实例名,第二个参数是具体的类名或接口名,例如 String,InputStream。

Java代码

public static void main(String[] args) throws Exception {

ArrayList list = new ArrayList();

System.out.println(list instanceof List);

System.out.println(list.getClass().isAssignableFrom(List.class));

System.out.println(List.class.isAssignableFrom(list.getClass()));





public static void main(String[] args) throws Exception {

ArrayList list = new ArrayList();

System.out.println(list instanceof List);

System.out.println(list.getClass().isAssignableFrom(List.class));

System.out.println(List.class.isAssignableFrom(list.getClass()));

结果:

true

false

true

其中instanceof是子--》父

isAssignableFrom是夫--》子

我们应该尽量少用instanceof 运算符

应该尽量用多态来替代它
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: