从头认识java-12.3 instanceof、isInstance和isAssignableF

页面导航:首页 > 软件编程 > Java编程 > 从头认识java-12.3 instanceof、isInstance和isAssignableF

从头认识java-12.3 instanceof、isInstance和isAssignableF

来源: 作者: 时间:2016-01-18 15:52 【

这一章节主要讲述一下三个检测对象类型的方法instanceof、isInstance和isAssignableFrom。例子:package com ray ch12;public class Test {public static void main(String[] args) {try {Cl

这一章节主要讲述一下三个检测对象类型的方法instanceof、isInstance和isAssignableFrom。

例子:

 

package com.ray.ch12;

public class Test {
	public static void main(String[] args) {
		try {
			Class  AClass1 = (Class ) Class
					.forName(com.ray.ch12.Sub);
			System.out.println(AClass1.newInstance() instanceof Sub);
			System.out.println(AClass1.newInstance() instanceof Father);
			System.out.println(AClass1.isInstance(new Sub()));
			System.out.println(AClass1.isInstance(new Father()));
			System.out.println(AClass1.isAssignableFrom(Sub.class));
			System.out.println(AClass1.isAssignableFrom(Father.class));
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

class Father {
}

class Sub extends Father {
}

输出:

 

true
true
true
false
true
false

 

1.看上面的代码的时候需要注意:

(1)instanceof参数是类

(2)isInstance后面的参数是类的对象

(3)isAssignableFrom后面的参数是类的Class对象

这三种都是检测对象类型的方法。

 

2.从输出结果上面看出注意的地方:

(1)instanceof是支持向上转型,因此上面的AClass1也是Father的Class类型

(2)isInstance和isAssignableFrom不支持向上转型,因此输出的时候AClass1只能是指向Sub,而认不出Father。

 

总结:这一章节主要展示一下三个检测对象类型的方法instanceof、isInstance和isAssignableFrom,以及相应的注意点。

 

 


Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<