到目前为止,我正在尝试制作 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
另外请注意,当您调用该方法时,参数的顺序是乱序的。当该方法接受 GraphicContext
、int
时,您正在传递 GraphicContext
、Color
、int
>,颜色
。
关于Java 制作类的数组列表并调用该类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52843676/