问题
Imagine, I want to write a useless method called: isInstanceof that returns a boolean.
I was thinking about it. But I do not get out. An instanceof has to be used like:
[object] instanceof [a classname]
// I was thinking about something like this
public static boolean isInstanceof(Object obj, /*magic for the second param*/)
{
return obj instanceof /*the magical second param*/
}
But how can I make an parameter for [a classname]? Is there a way to do this without the method isInstance(Class cls) from java.lang.Class?
Thanks
回答1:
Hehe, yes. Use isAssignableFrom(Class) from Class. Not only is it not isInstance(Class), it also matches the way the instanceof operator works more closely. :)
Other than that, no, there’s not much you can do without those methods from Class.
回答2:
A dynamic version of
[object] instanceof [a classname]
would be:
Class.forName("a classname").isAssignableFrom(object.getClass());
来源:https://stackoverflow.com/questions/1920284/java-how-should-look-an-instanceof-method