将int添加到整数列表

时间:2017-02-23 10:19:08

标签: java integer int

在我的Mappable列表类中,我有a = Integer列表,我想在此列表中添加int

通常list.add(int)会因为java的自动拳击而起作用,但我想知道为什么这对我来说不起作用。

代码解释:在构造MappableList期间,我可以传入可变数量的int参数,我想将它们全部添加到整数列表中

public class MappableList<Integer>{

private final List<Integer> list;    
public MappableList(int... numbers){
  list = new ArrayList<Integer>();  
    for(int i : numbers){
      list.add(4);
    }    
  }
}

3 个答案:

答案 0 :(得分:3)

正在工作!!

你总是插入相同的值 4

for(int i : numbers){
    list.add(4);
}    

改为

list.add(i);

答案 1 :(得分:1)

private final List<Integer> list;    
public MappableList(int... numbers){

    list = new ArrayList<Integer>();    

    for(int i : numbers){
        list.add(i);
    }    
}

现在它会起作用

答案 2 :(得分:0)

您不应将Integer用作正式类型参数。如果您希望您的班级具有通用性,我建议将ET作为类型参数;通常使用单字母名称:

public class MappableList<E> {

    private final List<E> list;

    public MappableList(E... numbers) {

        list = new ArrayList<E>();

        for (E i : numbers) {
            list.add(i);
        }
    }
}

如果元素类型始终为Integer,则当然不需要您的类是通用的。只需从声明中删除type参数:

public class MappableList {

保留其他所有内容(包括<Integer>List之后的ArrayList)(不过你可以更正循环中的数字4)。

您的问题是MappableList<Integer>,您在课堂内Integer被视为类型参数,而不是我认为您想要的标准类java.lang.Integer