Why can't a “Class” variable be passed to instanceof?
问题 Why doesn't this code 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 ? 回答1: 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