我的ArrayList中的.add有什么问题?

1 java eclipse arraylist

我目前正在开发一个简单的java游戏,代表DOS游戏Gorillas.bas.我正在创建一个arraylist来存储各个建筑物进行碰撞检查等等,但是无论我怎么做,Eclipse都会给我一个错误.这是我为arraylist所得到的.

ArrayList<Rectangle> Buildings = new ArrayList<Rectangle>();
Point build1 = new Point(75,30);
Rectangle building1 = new Rectangle(build1, BUILDING_WIDTH, 150);
Buildings.add(Rectangle building1);
Run Code Online (Sandbox Code Playgroud)

错误在于.add()方法,它告诉我该方法需要一个正文而不是一个分号.这是什么意思?日食不承认.add()吗?

编辑:请求周围的一些代码; 似乎没有任何语法错误.

public double bananaX = 85; 
public double bananaY = 292;
public double bananaDX = 1; 
public double bananaDY = 1;
public double power = 0;
public double direction = 0;
public double rise;
public double run;
Point start = new Point(0,0);
Point finish = new Point(0,0);`

ArrayList<Rectangle> buildings = new ArrayList<Rectangle>();
Point build1 = new Point(75,350);
Point build2 = new Point(225, 250);
Point build3 = new Point(325, 200);
Point build4 = new Point(425, 200);
Point build5 = new Point(525, 250);
Point build6 = new Point(675, 350);
Rectangle building1 = new Rectangle(build1, BUILDING_WIDTH, 150);
buildings.add(building1);


public void power(Point start, Point finish)
{
    int power = 0;
    power = (int)start.distanceTo(finish);


}

public void direction(Point start, Point finish)
{
    double direction = 0;
    rise = (finish.y - start.y)*-1;
    run = (finish.x - start.x)*-1;
    direction = rise/run;
    bananaDX = run/10;
    bananaDY = (rise/10);
    System.out.printf("rise = %f\nrun = %f\ndirection = %f\n\n ",rise, run, direction);

}
Run Code Online (Sandbox Code Playgroud)

Mik*_*ike 6

你只需要:

Buildings.add(building1);

由于building1已经是一个Rectangle.您已经在其上方创建了Rectangle对象,因此您只需要使用变量本身,因为它的类型正确.

编辑:您可能还应该重命名Buildings buildings以避免任何混淆.当您使用大写字母命名变量时,它看起来像一个类型而不是变量.

编辑2:根据您提供的代码,您需要buildings.add(building1);在某种方法内部.您应该创建一个初始化方法,如果您想在开头添加它,则在开始时调用它.