2016-12-02 4 views
-4

次のListをメソッドに渡そうとしていますが、どのパラメータを使用するかわかりません。リストとして渡すと、空に見えます。私が間違っていることを教えてもらえますか?リストを(ArrayListとして初期化された)Javaのメソッドに渡すには?

List<String> list1 = new ArrayList(); 
list.add("b"); 
list.add("c"); 

doStuff(list1); 


public void doStuff(List<String> list1){ 
     //This outputs 0, even though I added two values to the list 
     System.out.println(list.size()); 

} 
+0

を試してみてください。クラス全体を入れて、問題の原因を突き止めてください。 –

+0

@avi何が間違っているのかについて私のコードを見てください –

答えて

2

することは、それはあなたが

list.add("b"); 
list.add("c"); 

を行うときに、あなたがこれに追加されているlistがあなたのクラスで

フィールドであることを意味する必要があります渡されているlist1ではありません。

は、一度のArrayListを初期化してください

List<String> list1 = new ArrayList(); 
list1.add("b"); // list1 
list1.add("c"); // list1 

doStuff(list1); 


public void doStuff(List<String> list1){ 
     // should print 2 
     System.out.println(list1.size()); // list1 

} 
2

あなたはlistに文字列を追加しましたが、あなたはlist1、ないlistを渡しています。このコードは

public void doStuff(List<String> list1){ 
     System.out.println(list.size()); // this is NOT the parameter passed in 

} 

をコンパイルする場合

0
public static void main(String[] args) 
    { 
     List<String> list1 = new ArrayList(); 
     list1.add("b"); 
     list1.add("c"); 
     doStuff(list1); 



    } 
    public static void doStuff(List<String> list1){ 
      //This outputs 0, even though I added two values to the list 
      System.out.println(list1.size()); 

    } 
+0

私は関数を呼び出すのを忘れていましたが、それは解決策ではありません。 – Avi

+0

私の答えで一度確認してください。 – user4342532

関連する問題