Which of the following is better?
a instanceof B
or
B.class.isAssignableFrom(a.getClass())
The only difference that I know of is, when ‘a’ is null, the first returns false, while the second throws an exception. Other than that, do they always give the same result?
When using
instanceof, you need to know the class ofBat compile time. When usingisAssignableFrom()it can be dynamic and change during runtime.