Hasta ahora estoy tratando de hacer una ArrayList
de objetos que comparten el mismo método que quiero llamar con el fin de la ArrayList
.
Hasta ahora el código es como esto
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);
}
}
Y la clase principal que pone en marcha de forma automática es la siguiente
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);
}
}
}
Sin embargo, el error es <identifier> expected
k.do(canvas, CoreColor.BLACK, 80)
Además, el que se queja de manera similar en el identificador void do
de clase de forma. ¿Qué es exactamente mal en este código?
Según los documentos , do
es una palabra clave (igual que en el contexto de un do-while
bucle). Es necesario nombrar a su método de otra cosa. Como los JLS dice en lo que se refiere a las palabras clave:
50 secuencias de caracteres, formadas a partir de letras ASCII, están reservados para uso como palabras clave y no se pueden utilizar como identificadores
También lado nota que tiene los argumentos fuera de servicio cuando se llama al método. Usted está de paso GraphicContext
, Color
, int
, cuando el método acepta GraphicContext
, int
, Color
.