Java 使用数组作为属性来修改它
我的朋友用java编写了一个突破游戏。我知道C++,它相对java很好。< /P> 我在尝试插入多球砖块时遇到问题 以下是我的函数的相关部分:Java 使用数组作为属性来修改它,java,Java,我的朋友用java编写了一个突破游戏。我知道C++,它相对java很好。< /P> 我在尝试插入多球砖块时遇到问题 以下是我的函数的相关部分: private Balle[] balle; public BriqueMultiBalle(Balle[] bal) { super(); balle = bal; SCORE = 100; } public void touched() { visible = false;
private Balle[] balle;
public BriqueMultiBalle(Balle[] bal) {
super();
balle = bal;
SCORE = 100;
}
public void touched() {
visible = false;
balle[Balle.getNInstance()].makeVisible();
}
我没有收到任何错误,但在调试时发现balle对应于空指针。我尝试使用这些不同的声明,但是没有一个有效:
一,
但是,这些方法不起作用
谢谢
Ghi102您在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);
}
}
您正在调用哪个构造函数,默认构造函数,还是传递Balle[]的构造函数?如果是后者,您确定要传递一个初始化的Balle[]?如何创建要传递给构造函数的Balle[]?也许你可以告诉我们你在哪里做这件事的代码?
balle = new Balle[bal.length];
for(int i = 0; i < bal.length; i++){
balle[i] = bal[i];
}
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);
}
}