Java制作类的arraylist并调用该类的方法

Hje*_*ell 2 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);
   }
}
Run Code Online (Sandbox Code Playgroud)

并且自动启动的主要类是这样的

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);
       }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

此外,它对void do Shape-class的标识符也有类似的抱怨.这段代码究竟出了什么问题?

GBl*_*ett 10

根据文档,do是一个关键字(在do-while循环的上下文中).你需要为你的方法命名别的东西.正如JLS所说的关键字:

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


另外请注意,调用方法时,参数不正确.你是路过GraphicContext,Color,int,当方法接受GraphicContext,int,Color.