我已经对此进行了广泛的研究,但似乎无法找到适合这种情况的最佳实践。
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 语句清楚地检查了类型,所以我对异常并不偏执,但是有没有更好的方法来做到这一点而不必抑制未经检查的警告?这种情况有最佳实践吗?我已阅读了整个仿制甲骨文的教程在这里,我有看了很多帖子计算器,但没有的,似乎回答了这个问题。任何帮助将不胜感激谢谢。