2011-01-25 9 views
1

次のエラーが表示されるのはなぜですか:cannot find symbol: method add?これは私のコードです:シンボルが見つかりません:メソッドを追加

import java.util.* 

public class ArrayList { 
    // instance variables - replace the example below with your own 
    public void processinput(String s) { 
     int[] a = { 34, 25, 16, 98, 77, 101, 24 }; 

     ArrayList b = new ArrayList(); 

     for (int i = 0; i < a.length; i++) { 
      int d = a[i]; 
      if (d % 2 > 0) { 
       b.add(new Integer(d)); 
      } 
     } 

     for (int i = 0; i < b.size(); i++) { 
      System.out.print(b.get(i) + " "); 
     } 

     for (int i = a.length - 1; i >= 0; i--) { 
      System.out.print(a[i] + " "); 
     } 
    } 
} 

どうすればこのエラーを解決できますか?

+2

あなたのコードは私のためにコンパイルされます(私はクラス内のメソッドの中に入れていれば、明らかです)。おそらく 'ArrayList'という名前のクラスをどこかに持っていますか?もしそうであれば、間違って 'java.util.ArrayList'の代わりにそれを使用するかもしれません。 –

+1

可能な複製[シンボルメソッドadd(java.lang.integer)を見つけることができません..実際に問題は何ですか?](http://stackoverflow.com/questions/4801711/cannot-find-symbol-method-add-java -lang-integer-whats-the-problem-actually) –

答えて

4

もう一度あなたの質問を読んで、私はあなたのクラスの開始時に

import java.util.*; 

が欠落していると仮定します。これは、このエラーが発生する唯一の方法です。あなたはまた、問題が何かを示す "シンボルArrayListを解決できません"のようなエラーが表示されるはずです。


変更するには、エラーメッセージを読み、彼らが何を意味するかを理解することができるようになります経験で

for(int i = a.length-1; i >= 0; i--) { 

する最後のループ。この場合

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7 
at Main.main(Main.java:33) 

33行目(またはそれはあなたのコード内にあります)で、配列の最後を超えたインデックスにアクセスしようとしました。彼らはしばしば問題があり、それを修正する方法をどのようにのように最高の手掛かりであるため、配列aの最後の要素は、エラーメッセージをよくお読みすることが重要である最初の要素は0

あるのでa.length-1されます。

あなたが質問を投稿するときには、あなたが得ているエラーを投稿するべきです。

+2

ポストからはあまり見えませんが、現時点でコンパイラのエラーと実際に戦っています。 –

+0

@ジョアヒム、私はあなたのコメントからそれを得た。私はその欠落したインポートと彼はすべてのエラーメッセージを読んでいないと思う。 ;) –

+1

紛失した(または間違った)インポートに投票します。 (そしてあなたの答え;)) –

0

あなたのクラスはArrayListと呼ばれ、この行を修正し、これは、したがって、あなたのコンパイルエラーをjava.util.ArrayListを隠しています。クラスの名前を変更するか、bと宣言するときにフル・ネームjava.util.ArrayListを使用してください。

関連する問題