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>) { }