Saturday, April 7, 2012

Difference between instanceof and isInstance() ?

First difference:


instanceof is a reserved word of Java, but isInstance() is a method of java.lang.Class.


Other differences:

you could use instanceof on types (which are known on compile time), and isInstance() could only be called on an instance fo java.lang.Class.

if (obj instanceof MyType) {
...
}

if (MyType.class.isInstance(obj)) {
...
}

so you can have dynamism using isInstane() like this:

Class x = Integer.class;

if (x.isInstance(obj)) {
...
}

x = String.class;

if (x.isInstance(obj)) {
...
}

as you see you could check the type of an object with an unknown class during compile time!

No comments:

Post a Comment