2016-05-26 4 views
0

forのArrayListからxをとるときに問題があります。 私はこのコードを使用して、より良い説明しましょう:私はXを得るのArrayListを渡し、すべての要素のためにしようとしたとき、私は最初のその後のArrayListJavaが生の型のフィールドを取得するArrayList

public void mouseEntered(MouseEvent e){ 

    for(int i = 0; i < pointStorer.size(); i++){ 
     if(pointStorer.get(i).x <= e.getX()){ 
      check = true; 
     } 
    } 
} 

を宣言 private ArrayList pointStorer = new ArrayList();

、それは、Javaの動作しません。 simbol(x)を見つけることができないと言います。

ご協力いただきありがとうございます。

+6

http://stackoverflow.com/questions/2770321/what-is-a-raw-type-and-why-shouldnt-we-use-it – Reimeus

+1

@Reimeusは正しい方向にあなたを指し示そうとしています。 ArrayListに何が構成されているかの変数にアクセスしたい場合は、ArrayListに何を書き込むかを伝える必要があります。 –

+0

はい、これは役に立たなかった...私はまだ理解できません – HeyMan

答えて

1

あなたpointStorerから要素を取得すると、あなたがそうでなければ、プログラムがそのタイプを知ることができませんし、それがxフィールドを持って知ることができません、Point(または使用しているものは何でもクラス)にキャストする必要があります。

しかし、このように、明示的に配列型を定義する方が良いでしょう:

private List<Point> pointStorer = new ArrayList<Point>(); 

こうしてあなたはgetを使用する場合、それは直接Pointオブジェクトを返しますし、あなたがそのにアクセスするためにそれをキャストする必要がありませんフィールド。

+0

ありがとう!これは働いた:) – HeyMan

1

JavaはArrayListObjectだと思います。 ArrayList<Point>などのタイプパラメータ、またはxフィールドのタイプパラメータを指定する必要があります。

関連する問題