我是Java新手。这是一个错误。
private class applicantInfo {
int Id;
double quality;
}
private class allApplicants {
applicantInfo[] applicantArr = new applicantInfo[20];
}
public void newGame {
allApplicants applicants = new allApplicants();
applicants.applicantArr[0].Id = 5;
}
我在
applicants.applicantArr[0].Id = 5;
处遇到错误。我要做的就是在C中与此类似:
typedef struct _applicantInfo{
int Id;
double quality;
} applicantInfo;
typedef struct _allApplicants {
applicantInfo applicantArr[20];
} allApplicants;
int main () {
allApplicants applicants;
applicants.applicantArr[0].Id = 5;
}
如何用Java做到这一点?
最佳答案
Java和C数组之间的区别是C会初始化Array中的所有值,而Java会将它们设置为null。所以当你打电话
applicants.applicantArr[0].Id = 5;
您会收到NullPointerException,因为appenders.applicantArr [0]为空。
您需要先创建一个新的appendorInfo并将其放入数组中,然后才能访问它:
allApplicants applicants = new allApplicants();
applicants.applicantArr[0] = new applicantInfo();
applicants.applicantArr[0].Id = 5;