为什么这个列表有错误?

时间:2014-10-30 21:08:36

标签: java awt

我正在关注YouTube上的教程,制作Java游戏。

我在跟踪它时遇到此错误,我不知道为什么。

The type List is not generic; it cannot be parameterized with arguments <Enemy>

这是列表:

private List<Enemy> enemies = new ArrayList<Enemy>();

我已将List的java.util.*;java.awt.*;导入到理论上。

这是我的敌人课程

import java.awt.*;

public class Enemy extends Entity {

    private Rectangle hitbox;
    private int movementX, movementY;
    private boolean dead = false;
    private Main instance;

    public Enemy(Main instance, int x, int y) {
        super(x, y);
        this.instance = instance;
        hitbox = new Rectangle(x,y,32,32);

        movementX = 0;
        movementY = 1;
    }

    private void move(){
        if(instance.getStage().isCollided(hitbox)){
            movementY = 0;
            dead = true;
        }
        hitbox.x += movementX;
        hitbox.y += movementY;
    }

    public boolean isDead() { return dead; }


    public void draw(Graphics g){
        move();
        g.setColor(Color.RED);
        g.fillRect(hitbox.x, hitbox.y, hitbox.width, hitbox.height);
    }

}

3 个答案:

答案 0 :(得分:4)

您只导入了java.awt.*,其中包含不同的非通用List。您必须完全限定对java.util.List的引用,因为java.awt.List已导入。

private java.util.List<Enemy> enemies = new ArrayList<Enemy>();

确保您已导入java.util.*,以便解决ArrayList

答案 1 :(得分:0)

通过导入java.awt.*,您还要导入java.awt.List。您可能希望使用java.util.List代替java.awt.List

java.awt中的通配符导入替换为import所需的所有类的单独java.awt语句,然后导入java.util.List

答案 2 :(得分:0)

问题是编译器试图将此List对象视为java.awt.List而不是java.util.List。用

替换代码
private java.util.List<Enemy> enemies = new ArrayList<Enemy>();