Java - 使用数组作为参数实例化对象

时间:2014-02-08 00:54:06

标签: java arrays object instantiation

我的Cassette类中的参数包含了这个构造函数:

public class Cassette {

private int cass_Num;
private String cass_Titre;
private String cass_Realisat;
private int nbCopie;
private int [] cass_Emprunteur;

//...code
public Cassette(int num, String titre, String real, int copies, int[] nbEmp){
    this.cass_Num = num;
    this.cass_Titre = titre;
    this.cass_Realisat = real;
    this.nbCopie = copies;
    for(int i=0;i<nbEmp.length;i++){this.cass_Emprunteur[i] = nbEmp[i];}
}
//set methods...
//get methods...
}//end

我想在Main中实例化一些Cassette类的对象来测试我的赋值的一些函数。 对于我的生活,我不能找到正确的方法来做到这一点而不会得到null.Pointer.Exception

这些是我的主要内容:

//...code
Cassette [] tabCas = new Cassette[MAX_CASSETTES];
for(int i=0;i<tabCas.length;i++){tabCas[i]= new Cassette();}
tabCas[0] = new Cassette(0001,"Jurassic Pork","Steven Swineberg",7,new int[] {11111,44444});    //<--- error here
//...code

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

看看你的构造函数“this.cass_Emprunteur”为null,你尝试使用this.cass_Emprunteur [i]

访问

答案 1 :(得分:0)

Cassette构造函数中,您需要:

cass_Emprunteur = nbEmp;

而不是行:

for(int i=0;i<nbEmp.length;i++){this.cass_Emprunteur[i] = nbEmp[i];}

或者,或者,您需要在for循环中使用它之前初始化int[]