package bean;
/** 一般可能我们在使用java的RTTI技术时,都使用instanceof来判断一个对象是不是属于某个类,
* 但是有时候这个类是继承于一个父类的,所以,不能严格判断出是不是自己的类,而不是自己的父类。
* 这个时候就使用另一种思路也是不错的——getClass判断;当然肯定还有其他的方法来判断的,只是自己的总结。
*/
public class tets {
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");
} else if (o instanceof ClassC) {
System.out.println("ClassC");
}
}
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());
// }
//
if (o.getClass() == ClassA.class) {
System.out.println(o.getClass().getName());
} else if (o.getClass() == ClassB.class) {
System.out.println(o.getClass().getName());
} else if (o.getClass() == ClassC.class) {
System.out.println(o.getClass().getName());
}
}
}
class ClassA {
ClassA() {
};
}
class ClassB {
ClassB() {
};
}
class ClassC extends ClassA {
ClassC() {
};
}
instanceof判断对象类型
最新推荐文章于 2024-07-09 08:58:34 发布