2017-02-23 165 views
-4

在我的Mappable列表类中,我有a = Integer列表,我想在此列表中添加int向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); 
    }  
    } 
} 
+1

你有9行代码,你失败了,如果他们是有意义的重新检查这些行? 'list.add(4)'如何根据你想要的行为做出任何意义? – Tom

+0

尼斯[MVCE](http://stackoverflow.com/help/mcve)(编辑之后),谢谢。 –

回答

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总是,你不需要你的类是通用的,当然。单从声明中删除类型参数:

public class MappableList { 

保留一切(包括<Integer>ListArrayList)的是(你可以纠正在循环数4,虽然)。

你的问题是,与MappableList<Integer>,在你的课Integer被认为是类型参数,而不是我认为你打算的标准类java.lang.Integer

+0

非常感谢你,我现在明白了 –

3

这是工作!

要插入八方通相同的值

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

做,而不是

list.add(i); 
+0

对不起,我添加后遗漏了一些东西 公共类MappableList 它不起作用 –

+0

我知道你修正了在提问者代码中看起来是一个错误的东西。仍然你可能想看到[是“你的代码对我来说工作正常”的答案可以接受?](http://meta.stackoverflow.com/questions/277923/are-your-code-works-fine-for-me-answers - 可接受):-) –

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

    list = new ArrayList<Integer>();  

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

现在将工作