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

时间:2014-10-07 20:50:32

标签: 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);

错误在.add()方法上,它告诉我该方法需要一个正文而不是一个分号。这是什么意思? eclipse没有认识到.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);

}

2 个答案:

答案 0 :(得分:6)

你只需要:

Buildings.add(building1);

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

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

Edit2:根据您提供的代码,您需要在某种方法中包含buildings.add(building1);。你应该创建一个初始化方法,如果你想在开始时添加它,就会在开始时调用它。

答案 1 :(得分:3)

不要在Rectangle上加倍。

Buildings.add(building1);