假设有两个`ArrayList`对象,`list1`和`list2`,其中`list1`存储的是字符串类型的元素,`list2`存储的是整数类型的元素。现在需要将`list1`中长度大于5的字符串提取出来,并将其转换为对应的整数类型(假设字符串都是可以转化为整数的),然后将转换后的整数添加到`list2`。以下哪个代码片段最能体现Java泛型的正确使用和类型安全?
答案解析
A选项没有使用泛型,需要进行强制类型转换,存在类型安全隐患。B选项正确,使用了泛型限定了`list1`和`list2`的元素类型,并且在遍历时直接使用了String和Integer,避免了类型转换的麻烦,并且保证了类型安全。C选项虽然使用了泛型,但是遍历时仍使用了`Object`,使得类型约束变得毫无意义。D选项尽管使用了泛型,但泛型类型为Object,没有起到类型约束的作用,同时需要进行不必要的类型强转,存在类型转换异常的风险。
正确答案:B