如果我知道数组列表运行时的数据类型,我可以在泛型中使用它吗?
例如,我可以在声明下面的数组列表时使用Class(比如String.class
)。
List objList = new ArrayList<DestinationClassToBeReplaced>();
答案 0 :(得分:2)
List<String> objList = new ArrayList<>();
本身就是为了做到这一点而List
javadoc清楚地说明了这一点。
Type Parameters: E - the type of elements in this list
答案 1 :(得分:1)
您可以这样写:
List<DestinationClassToBeReplaced> objList = new ArrayList<>();
<>
运算符称为Diamond运算符。
以上代码推断使用JDK 7 Diamond Operator
答案 2 :(得分:1)
可以使用三种方式来声明通用列表
方法1:使用泛型,即两侧
List<Integer> list = new ArrayList<Integer>();
方法2:左侧使用泛型,右侧使用菱形操作符
List<Integer> list = new ArrayList<>();
方法3:仅在左侧使用通用
List<Integer> list = new ArrayList();
在上述三个中,第二种方法是在java 7中引入的。
如果要使用泛型,则必须在左侧指定类型才能使用泛型。 请注意,在编译期间检查泛型后,编译器会抛弃泛型的类型限制。
仅在右侧添加通用将无助于您。