小编ric*_*ter的帖子

用于强制转换的 Java 通配符最佳实践

我已经对此进行了广泛的研究,但似乎无法找到适合这种情况的最佳实践。

ArrayList<GenericObject<?>> list = new ArrayList<>();
list.add( new GenericObject<Integer>(6) ); // Autoboxing
list.add( new GenericObject<String>("HI") );
if(list.get( 0 ).getGenaricValue().getClass() == Integer.class){

        GenericObject<Integer> gi = (GenericObject<Integer>) list.get( 0 );
        System.out.println("Was Integer");
        System.out.println(gi);
    }
}
Run Code Online (Sandbox Code Playgroud)

当这段代码起作用时,从 GenericObject <?> 到 GenericObject<Integer> 的转换给出了一个未经检查的警告。现在你可以看到我已经用 if 语句清楚地检查了类型,所以我对异常并不偏执,但是有没有更好的方法来做到这一点而不必抑制未经检查的警告?这种情况有最佳实践吗?我已阅读了整个仿制甲骨文的教程在这里,我有看了很多帖子计算器,但没有的,似乎回答了这个问题。任何帮助将不胜感激谢谢。

java generics casting wildcard

6
推荐指数
1
解决办法
6525
查看次数

标签 统计

casting ×1

generics ×1

java ×1

wildcard ×1