我知道什么是ArrayList< T>用于,但何时应该使用ArrayList<?> ?你能用例子说明吗?谢谢.
解决方法
据我所知,ArrayList<?>基本上告诉编译器:
Yes,I know that there is a generic version of ArrayList available to me,but I really,genuinely don’t know what kind of objects I’m expecting to be in this one. So don’t give me warnings that I’m not using generics the way I should be.
更新
我刚刚知道,使用原始类型(ArrayList)和泛型与泛型(ArrayList<?>)之间存在真正的区别,超越避免编译器警告.显然,一旦你声明了一个原始类型,任何泛型都不会在任何类型的方法上工作,即使泛型不是基于你省略的类型. See here for an example.
所以当我的原始答案一般是正确的时候,我认为提到使用ArrayList<?>而不是ArrayList不仅仅是删除编译器警告的问题.