首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SCJP前期概念

SCJP前期概念
EN

Stack Overflow用户
提问于 2014-02-06 15:39:46
回答 1查看 1.2K关注 0票数 0

给定方法的预泛型实现:

代码语言:javascript
复制
public static int sum(List list) {    
    int sum = 0;    
    for ( Iterator iter = list.iterator(); iter.hasNext(); ) {     
        int i = ((Integer)iter.next()).intValue();     
        sum += i;    
    }
    return sum;    
}

哪些三种更改允许类与泛型一起使用,并避免未经检查的警告?(选择三个。)

A.删除第14行。

将第14行替换为int i = iter.next();

将第13行替换为for (int i : intList) {

将第13行替换为for (Iterator iter : intList) {

将方法声明替换为sum(List<int> intList)

将方法声明替换为sum(List<Integer> intList)

这个问题来自SCJP,答案是ACF。但我选择了ABF。有人能解释为什么它的C值是B吗?如果我使用B,它会不会起作用?为什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-06 15:44:27

只有当您将迭代器声明为Iterator<Integer>时,int i = iter.next()才会编译。

但是,在Java 5中添加的foreach循环意味着,如果您有一个List<Integer>,并且希望迭代它的元素,您可以简单地使用for (int i : list)并跳过创建迭代器、调用next()hasNext() -编译器将为您编写该代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21607315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档