2017-02-23 161 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); 
    }  
} 

現在將工作