JavaはクラスのArrayListのを作り、そのクラスのメソッドを呼び出します

Hjell:

これまでのところ私が作るしようとしている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形状クラスの。まさにこのコードで何が間違っているのですか?

GBlodgett:

よれば、ドキュメントdo(の文脈におけるようにキーワードであるdo-whileループ)。あなたは他のあなたの方法の何かに名前を付ける必要があります。JLSは、キーワードに関連して言います:

ASCII文字から形成された50の文字列は、キーワードとして使用するために予約されており、識別子として使用することはできません


あなたがメソッドを呼び出したときにもサイドノートでは、あなたは、順不同で引数を持っています。あなたが渡しているGraphicContextColorint、この方法が受け入れたときGraphicContextintColor

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=222355&siteId=1