Java 从原始类型 ArrayList 获取字段

Java get fields from raw type ArrayList

我在 for 中从 ArrayList 中获取 x 时遇到问题。 让我用这段代码更好地解释一下: private ArrayList pointStorer = new ArrayList();

我先声明ArrayList

public void mouseEntered(MouseEvent e){

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

然后当我尝试传递 ArrayList 并为每个元素获取 x 时,它不起作用,Java 说 'cannot find simbol'(x)。

预先感谢您的帮助。

当您从 pointStorer 中获取一个元素时,您需要将其转换为 Point(或您正在使用的任何 class),否则程序将不知道其类型和它不会知道它有一个 x 字段。

但是最好显式定义数组类型,像这样:

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

这样,当您使用 get 时,它会直接 return 一个 Point 对象,您不必转换它来访问它的字段。

Java 认为您的 ArrayListObject。 您应该提供一个类型参数,例如:ArrayList<Point> 或其他带有字段 x.

的类型