The instanceof keyword can be used to test if an object is of a specified type.
if (objectReference instanceof type)
The following if statement returns true.
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
However, applying instanceof on a null reference variable returns false.
For example, the following if statement returns 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
Since a subclass 'is a' type of its superclass, the following if statement, where Child is a subclass of Parent, returns 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