Java方法()。方法()调用

时间:2012-06-21 00:17:27

标签: java arraylist compiler-errors

如果有可能,您可以使用其他方法method拨打return吗?

例如......

class Example {
    public static void main(String[] args) {
        Point t1 = new Point(0,0);
        Point t2 = new Point(0,1);
        ArrayList pointContainer = new ArrayList();
        pointContainer.add(0,t1);
        pointContainer.add(0,t2);    // We now have an ArrayList containing t1 & t2
        System.out.println(pointContainer.get(1).getLocation()); // The problem area
    }
}

在写得不好的示例中,我试图在getLocation()的索引项1上调用java.swing.awt方法(pointContainer的一部分)。

尝试编译程序时,出现以下错误......

HW.java:20: error: cannot find symbol
        System.out.println(test.get(1).getLocation());
                                  ^
  symbol:   method getLocation()
  location: class Object

有人可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:4)

首先,键入您的ArrayList,以便Java可以知道哪些对象来自它。

List<Point> pointContainer = new ArrayList<Point>();

然后,您从该ArrayList检索的任何对象都将是Point类型,因此您可以对它们执行操作。

答案 1 :(得分:1)

在您的情况下,您需要对Point进行显式强制转换,然后调用预期的方法。否则,您需要使用@Makoto提到的java泛型方式定义arraylist。

施法方式

((Point)pointContainer.get(1)).getLocation()