你的位置:首页 > Java教程

[Java教程]Java中isAssignableFrom()方法与instanceof()方法

一句话总结:

  • isAssignableFrom()方法是从类继承的角度去判断,instanceof()方法是从实例继承的角度去判断。
  • isAssignableFrom()方法是判断是否为某个类的父类,instanceof()方法是判断是否某个类的子类。

1. Class.isAssignableFrom()方法

Class.isAssignableFrom()是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的子类或接口。   
格式为:       

Class1.isAssignableFrom(Class2) 

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

2.Class.instanceof()方法

Class.instanceof()是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。  
格式是:

obj instanceof TypeName 

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

3.具体用法

转自(http://sunnylocus.iteye.com/blog/555676)

package com.bill99.pattern;public class AssignableTest {    public AssignableTest(String name) {  }  /**   * 判断一个类是否是另一个类的父类   * 是打印true   * 否打印false   */  public static void testIsAssignedFrom1() {    System.out.println("String是Object的父类:"+String.class.isAssignableFrom(Object.class));  }  /**   * 判断一个类是否是另一个类的父类   * 是打印true   * 否打印false   */  public static void testIsAssignedFrom2() {    System.out.println("Object是String的父类:"+Object.class.isAssignableFrom(String.class));  }  /**   * 判断一个类是否和另一个类相同   * 是打印true   * 否打印false   */  public static void testIsAssignedFrom3() {    System.out.println("Object和Object相同:"+Object.class.isAssignableFrom(Object.class));  }  /**   * 判断str是否是Object类的实例   * 是打印true   * 否打印false   */  public static void testInstanceOf1() {    String str = new String();    System.out.print("str是Object的实例:");    System.out.println(str instanceof Object);  }  /**   * 判断o是否是Object类的实例   * 是打印true   * 否打印false   */  public static void testInstanceOf2() {    Object o = new Object();    System.out.print("o是Object的实例:");    System.out.println(o instanceof Object);  }    public static void main(String[] args) {    testIsAssignedFrom1();    testIsAssignedFrom2();    testIsAssignedFrom3();    testInstanceOf1();    testInstanceOf2();  }}

结果:

String是Object的父类:false
Object是String的父类:true
Object和Object相同:true
str是Object的实例:true
o是Object的实例:true

 


佛山好玩的旅游景点佛山及周边旅游景点佛山两日游景点报价佛山旅游线路报价优惠佛山旅游必去景点是长隆国际大马戏怎么订vip票?多少钱? 五一去华南MALL欢笑天地有哪些游戏项目? H7N9这么厉害,现在还能去旅游吗?要注意些什么 五一可以去哪里?人少景色好的。 从化流溪河公园2015花海音乐节几号开始?流溪河花海音乐节开始时间? 从化五一哪里有花展?五一去从化哪里赏花? 2015从化流溪河葵花节要门票吗?流溪河森林公园葵花节门票价格? 2015从化流溪河葵花节时间?流溪河森林公园葵花节到什么时候? 2015最新护士节优秀演讲稿范文 2015年全国小学生暑假放假时间安排汇总表 2015国庆火车票能提前几天预售? 今年五一高速免费开始时间 组图:漫步京西古道 探寻被遗忘的西峰寺八景 悦筵:澳洲椰丝巧克力蛋糕 配椰汁奶油酱 北京西山:一片“学院派”风景(图) 大兴榆垡镇 秀色可餐南瓜宴 AQ147A750JAJME\500 Datasheet AQ147A750JAJME\500 Datasheet TLCR107M006RTA Datasheet TLCR107M006RTA Datasheet LD03ZC101KAB2A Datasheet LD03ZC101KAB2A Datasheet 从大庆到香港澳门旅游 从大庆到香港澳门旅游 从大庆到香港澳门旅游 从包头到港澳游 从包头到港澳游 从包头到港澳游 从佳木斯去香港澳门旅游 从佳木斯去香港澳门旅游 从佳木斯去香港澳门旅游