Java 制作类的数组列表并调用该类的方法

标签 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)

此外,它对 void do 上的标识符也有类似的提示。形状类。这段代码究竟有什么问题?

最佳答案

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

50 character sequences, formed from ASCII letters, are reserved for use as keywords and cannot be used as identifiers

<小时/>

另外请注意,当您调用该方法时,参数的顺序是乱序的。当该方法接受 GraphicContextint 时,您正在传递 GraphicContextColorint >,颜色

关于Java 制作类的数组列表并调用该类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52843676/

相关文章:

java - 如何使用test fx测试javafx代码

java - 使用 insertTab() 插入选项卡时 JTabbedPane.getComponentAt() 似乎返回错误的组件

java - 数学难度

java - Netbeans 图形设计器中自定义图形组件的自动更新

java - 如何在 for 循环中将值存储在数组中?

javascript - 通过深度索引访问数组元素

java - 在 JavaFX 中获取屏幕上路径的 x y 坐标

java - 如何解决Java IOException : Negative Seek Offset?(Java ID3标签库)

php - 按字母顺序排列数组

javafx-2 - 阻塞父阶段直到子阶段关闭