是的,我知道问题遍及整个Internet,但是...发生了一些奇特的事情...我开始在PC上开发一个项目,这一切都很完美,但是当我将其重写到笔记本电脑上时(我检查了所有内容,甚至复制粘贴了一些代码),有时它可以正常工作,但在其他时候,它写到我的对象为null并抛出NullPointerException。我尝试通过以下方式修复它:
if(object.get(i) == null){
removeObject(object.get(i));
} else {
//do stuff
}
但是它在if行上抛出了NullPointerException错误...
要明确起见:
“对象”是一个包含GameObject值的LinkedList,这些值是我制作的抽象类。
removeObject是Handler类(带有错误的类)中的一个方法...我将向您展示整个外观
// Package info
import java.awt.Graphics;
import java.util.LinkedList;
public class Handler {
LinkedList<GameObject> object = new LinkedList<GameObject>();
public void tick() {
for (int i = 0; i < object.size(); i++) {
GameObject tempObject = object.get(i);
tempObject.tick();
}
}
public void render(Graphics g) {
for (int i = 0; i < object.size(); i++) {
if (object.get(i) == null) { //Error line
removeObject(object.get(i));
} else {
GameObject tempObject = object.get(i);
//If I don't use the whole if else thing the row above is the error line
tempObject.render(g);
}
}
}
public void addObject(GameObject object) {
this.object.add(object);
}
public void removeObject(GameObject object) {
this.object.remove(object);
}
public void clearEnemies() {
for (int i = 0; i < object.size(); i++) {
GameObject tempObject = this.object.get(i);
if (tempObject.getId() == ID.Player) {
object.clear();
if (Game.gameState != Game.STATE.END || Game.gameState != Game.STATE.FINISH) {
addObject(new Player((int) tempObject.getX(), (int) tempObject.getY(), ID.Player, this));
}
}
}
}
public void clearAll() {
object.clear();
}
}
其他所有功能都可以正常运行,并且在我的PC上,相同的代码可以正常运行,没有任何错误...任何人都可以帮助我吗?
欣赏每条评论:)