eric2323223 eric2323223 - 13 days ago 8
Java Question

Why can't a "Class" variable be passed to instanceof?

could anyone tell me why this code won't compile?

public boolean isOf(Class clazz, Object obj){
if(obj instanceof clazz){
return true;
}else{
return false;
}
}


Why I can't pass a class variable to
instanceof
?

Thanks in advance.

Answer

The instanceof operator works on reference types, like Integer, and not on objects, like new Integer(213). You probably want something like

clazz.isInstance(obj)

Side note: your code will be more concise if you write

public boolean isOf(Class clazz, Object obj){
    return clazz.isInstance(obj)
}

Not really sure if you need a method anymore ,though.