我正在关注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);
}
}
答案 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>();