Java泛型不能使用instanceof运算符

广告位

因为编译器使用类型擦除,运行时不会跟踪类型参数,所以在Box <Integer>和Box <…

因为编译器使用类型擦除,运行时不会跟踪类型参数,所以在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>){ }  

  

拾荒的老头

关于作者: 拾荒的老头

为您推荐