加载中…
个人资料
阿诺
阿诺
  • 博客等级:
  • 博客积分:0
  • 博客访问:3,926
  • 关注人气:32
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

java 判断对象是否是某个类的类型两种方法

(2011-12-14 14:36:11)
标签:

java

判断对象

instanceof

getclass

it

分类: J2EE
一般可能我们在使用java的RTTI技术时,都使用instanceof来判断一个对象是不是属于某个类,但是有时候这个类是继承于一个父类的,所以,不能严格判断出是不是自己的类,而不是自己的父类。这个时候就使用另一种思路也是不错的——getClass判断;当然肯定还有其他的方法来判断的,只是自己的总结。如果有好的其他方法请赐教。。
public class test {
    public static void main(String arg[]) {
        ClassA a = new ClassA();
        ClassB b = new ClassB();
        ClassC c = new ClassC();
        sayClass(a);
        sayClass(b);
        sayClass(c);
        System.out.println("---------------------------------");
        equalClass(a);
        equalClass(b);
        equalClass(c);
    }
    public static void sayClass(Object o){
        if(o instanceof ClassA){
            System.out.println("ClassA");
        }else if(o instanceof ClassB){
            System.out.println("ClassB");
        }
    }
    
    public static void equalClass(Object o){
        if(o.getClass().equals(ClassA.class)){
            System.out.println(o.getClass().getName());
        }else if(o.getClass().equals(ClassB.class)){
            System.out.println(o.getClass().getName());
        }else if(o.getClass().equals(ClassC.class)){
            System.out.println(o.getClass().getName());
        }
    }
}
class ClassA{
    ClassA(){};
}
class ClassB{
    ClassB(){};
}

class ClassC extends ClassA{
    ClassC(){};
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有