我是 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 初始化数组中的所有值,而 Java 将它们设置为 null。所以当你打电话
applicants.applicantArr[0].Id = 5;
您将收到 NullPointerException,因为申请人.applicantArr[0] 为 null。 您需要创建一个新的applicantInfo并将其放入数组中,然后才能访问它:
allApplicants applicants = new allApplicants();
applicants.applicantArr[0] = new applicantInfo();
applicants.applicantArr[0].Id = 5;
关于Java 对象变量数组变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15470218/