无法找到符号:方法绘制(AsciiDisplay)

时间:2012-10-23 17:50:53

标签: java methods arraylist compiler-errors

我在第80行遇到编译器错误:

错误:/Users.../AsciiDisplay.java:80:找不到符号

符号:方法绘制(AsciiDisplay)

位置:类java.lang.Object

public class AsciiDisplay {

  private char [][] grid;
  private ArrayList shapes;

  public AsciiDisplay() {
    grid = new char [30][15];
    shapes = new ArrayList();
  }

  public void updateGrid() {

    for(int i = 0; i < shapes.size(); i++) {
      shapes.get(i).draw(this); //Line 80: The error is in this line of code.
    }
  }
}

public class Shape {

  protected String id;
  protected Coordinate location;

  public Shape(String id, Coordinate location) {
    this.id = id;
    this.location = location;
  }

  public void draw(AsciiDisplay dis) {
    dis.putCharAt(location.getX(),location.getY(),'?');
  }
}

1 个答案:

答案 0 :(得分:0)

你想要的是形状的ArrayList,所以你需要以那种方式声明你的ArrayList

ArrayList<Shape> shapes;

现在编译器会知道它只包含Shapes,所以它允许你在列表元素的形状上调用方法。

您可以查看Generics Tutorial了解更多信息。