我是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;

08-05 05:12