instanceof运算符是判断某个obj是否为某个类的实例。
但对于instanceof这个运算符,要注意:当前面的对象是后面类的实例或其子类的实例时都将返回true。
所以,如果要严格判断对象是否为一个类的实例,而又不是它子类的实例时,建议使用obj.getClass()==类名.class。
(这个判断代码用了反射基础知识)。
举个例子,Student是Person类的子类,有Student的一个实例stu,
则stu instanceof Person 返回true,stu instanceof Student返回true。
如果要严格判断,stu.getClass()==Person.class就返回false了,只有stu.getClass()==Student.class 返回true。
希望你能理解。 |