Java创建类的数组列表并调用该类的方法

时间:2018-10-16 20:35:00

标签: java arrays javafx arraylist identifier

到目前为止,我正在尝试制作一个ArrayList对象,这些对象具有与我想按ArrayList顺序调用的相同方法。

到目前为止,代码是这样的

public class Shape extends Application {
   public void do(GraphicsContext canvas, int size, Color color){
     ;
   } 
}


public class Triangle extends Shape {
   @Override
   public void do(GraphicsContext canvas, int size, Color color){
      canvas.setFill(Color.WHITE);
      double[] xs = {60,80.0,50.0};
      double[] ys = {60,120.0,50.0};
      canvas.fillPolygon(xs,ys,3);
   }
}

自动启动的主类是这样的

public class Main {
    public void drawForegroundContent(GraphicContext canvas){
       ArrayList<Shape> shpes = new ArrayList<Shape>();
       Triangle t = new Triangle();
       shapes.add(t);
       shapes.add(t);

       for (Shape k : shapes){
          k.do(canvas,CoreColor.BLACK, 80);
       }
    }
}

但是错误是<identifier> expected k.do(canvas, CoreColor.BLACK, 80)

此外,它对Shape类的void do上的标识符也有类似的抱怨。这段代码到底有什么问题?

1 个答案:

答案 0 :(得分:10)

根据docsdo是一个关键字(在do-while循环的上下文中)。您需要将方法命名为其他名称。正如JLS关于关键字所说的:

  

由ASCII字母组成的50个字符序列保留用作关键字,不能用作标识符


还请注意,调用方法时,参数混乱。当方法接受GraphicContextColorint时,您正在传递GraphicContextintColor