我的朋友在java编写了一个Breakout游戏。我知道C ++,它可以很好地转移到java。
尝试插入MultiBall砖时出现问题。
以下是我的功能的相关内容:
private Balle[] balle;
public BriqueMultiBalle(Balle[] bal) {
super();
balle = bal;
SCORE = 100;
}
public void touched() {
visible = false;
balle[Balle.getNInstance()].makeVisible();
}
我没有收到任何错误,但是在调试时发现 balle 对应于空指针。我尝试使用这些不同的声明,但是,它们都没有工作:
1
public BriqueMultiBalle(Balle[] bal) {
super();
for(int i = 0; i < 6; i++)
{
balle[i] = bal[i];
}
SCORE = 100;
}
2
public BriqueMultiBalle(Balle[] bal) {
super();
balle = new Balle[](bal);
SCORE = 100;
}
但是,这些方法不起作用。
谢谢,
Ghi102
答案 0 :(得分:0)
你在balle上得到一个空指针,因为你从不初始化数组,你把它保留为
private Balle[] balle;
尝试初始化代码
balle = new Balle[bal.length];
for(int i = 0; i < bal.length; i++){
balle[i] = bal[i];
}
这是我使用int数组编写的一个例子。相同的概念,只需将其应用于您的对象。
public static void main(String[] args) throws Exception {
int[] arrayInts;
int[] originalInts = { 1, 2, 3, 4, 5 };
arrayInts = new int[originalInts.length];
for(int i = 0; i < originalInts.length; i++){
arrayInts[i] = originalInts[i];
}
originalInts[0] = 10;
for (int i : arrayInts) {
System.out.println(i);
}
}