instanceof关键字
关键字 instanceof 可以用来测试一个对象是不是指定类型的一个对象。
if (objectReference instanceof type)
public class MainClass { public static void main(String[] a) { String s = "Hello"; if (s instanceof java.lang.String) { System.out.println("is a String"); } } }
is a String
如果测试一个空引用变量,将会返回false
public class MainClass { public static void main(String[] a) { String s = null; if (s instanceof java.lang.String) { System.out.println("true"); } else { System.out.println("false"); } } }
false
由于子类是超类的一个类型,在以下语句中,Child是Parent的子类,所以返回true
class Parent { public Parent() {} } class Child extends Parent { public Child() { super(); } } public class MainClass { public static void main(String[] a) { Child child = new Child(); if (child instanceof Parent) { System.out.println("true"); } } }
true
以上部分转自 http://www.java2s.com/CN/Tutorial/Java/0060__Operators/TheinstanceofKeyword.htm
instanceof 可用于强制转换前的判断
// 源于java.math.MathContext中的equals()方法 public boolean equals(Object x) { MathContext mc; if (!(x instanceof MathContext)) return false; mc = (MathContext) x; return mc.precision == this.precision && mc.roundingMode == this.roundingMode; // no need for .equals() }
/**************************************************************************
                 
原文来自博客园——Submarinex的博客: www.cnblogs.com/submarinex/               
 
*************************************************************************/