java 判断对象是否是某个类的类型两种方法
(2011-12-14 14:36:11)
标签:
java判断对象类instanceofgetclassit |
分类: 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(){};
}
public class test {
}
class ClassA{
}
class ClassB{
}
class ClassC extends ClassA{
}