【问题标题】:Java get fields from raw type ArrayListJava 从原始类型 ArrayList 获取字段
【发布时间】:2016-05-26 18:31:10
【问题描述】:

我在从 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 说“找不到 simbol”(x)。

提前感谢您的帮助。

【问题讨论】:

  • @Reimeus 正试图为您指明正确的方向。如果你想访问它的组成变量,你需要告诉 ArrayList 它是由什么组成的。
  • 是的,但这没有帮助......我还是不明白

标签: java arraylist field raw-types


【解决方案1】:

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

但最好显式定义数组类型,如下所示:

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

这样,当您使用 get 时,它将直接返回一个 Point 对象,您不必强制转换它来访问其字段。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-05
      • 2020-08-18
      • 2013-07-09
      相关资源
      最近更新 更多