如果有可能,您可以使用其他方法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
有人可以帮我解决这个问题。
答案 0 :(得分:4)
首先,键入您的ArrayList,以便Java可以知道哪些对象来自它。
List<Point> pointContainer = new ArrayList<Point>();
然后,您从该ArrayList检索的任何对象都将是Point
类型,因此您可以对它们执行操作。
答案 1 :(得分:1)
在您的情况下,您需要对Point
进行显式强制转换,然后调用预期的方法。否则,您需要使用@Makoto提到的java泛型方式定义arraylist。
施法方式
((Point)pointContainer.get(1)).getLocation()