作者:手机用户2602931615 | 来源:互联网 | 2022-12-02 10:13
到目前为止,我正在尝试创建一个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 shpes = new ArrayList();
Triangle t = new Triangle();
shapes.add(t);
shapes.add(t);
for (Shape k : shapes){
k.do(canvas,CoreColor.BLACK, 80);
}
}
}
但是错误是 expected
k.do(canvas, CoreColor.BLACK, 80)
此外,它对void do
Shape-class的标识符也有类似的抱怨.这段代码究竟出了什么问题?
1> GBlodgett..:
根据文档,do
是一个关键字(在do-while
循环的上下文中).你需要为你的方法命名别的东西.正如JLS所说的关键字:
由ASCII字母组成的50个字符序列保留用作关键字,不能用作标识符
另外请注意,调用方法时,参数不正确.你是路过GraphicContext
,Color
,int
,当方法接受GraphicContext
,int
,Color
.