日期:2014-05-20  浏览次数:20722 次

intanceof的作用有哪些啊啊,难道就只是判断对象引用指向那个类和接口吗??
在书里面看到intanceof的作用是通过一个变量把一个类的对象传递到另一个类中并且需要知道这个变量所指的对象是什么类型,我有些不明白难道他的作用只是用来判别所传递对象的类型,书中还说如果不使用intanceof进行测试则类型的转换有可能失败
希望大家能给我详细的讲解一下它的作用最好能举出例子,越详细越好
谢谢大家!

------解决方案--------------------
Java code

class Person
{
    String name;
    int age;
    
    Person(String name, int age)
    {
        this.name=name;
        this.age=age;    
    }
    
    String toPrint(Object obj)
    {
        if( !(obj instanceof Person) )//如果obj不是Person的实例,不同的对象,就没有比较的意义
        {                             
            return "无效比较!";
        }
        Person p = (Person)obj;//而且当obj不是Person的实例,在进行类型转换时,会抛出异常
        return (this.age > p.age)? this.name:p.name;
    }
}

public class Main
{
  public static void main(String [] args)
  {
      Person p1 = new Person("Allen",20);
      Person p2 = new Person("Jack",30);
      System.out.println( p1.toPrint(p2) );   
      System.out.println( p1.toPrint(new String("hello")) );  
  }
}