Дженерики Java - Нет instanceOf
Поскольку компилятор использует стирание типа, среда выполнения не отслеживает параметры типа, поэтому во время выполнения разница между Box <Integer> и Box <String> не может быть проверена с помощью оператора instanceOf.
Box<Integer> integerBox = new Box<Integer>();
//Compiler Error:
//Cannot perform instanceof check against
//parameterized type Box<Integer>.
//Use the form Box<?> instead since further
//generic type information will be erased at runtime
if(integerBox instanceof Box<Integer>) { }