数组和空指针异常问题



嗨,我是一名计算机工程专业的新生,正在学习java,我的问题可能很容易解决,但我努力寻找解决方案,但没有找到,我的期末考试即将到来,所以我很着急,需要帮助。

我收到了这个错误消息;

Exception in thread "main" java.lang.NullPointerException
at Lab8.ModelingAgency.addModel(ModelingAgency.java:45)
at Lab8.ModelingApp.main(ModelingApp.java:45)

我想做的是,创建一个建模代理类,该类具有没有模型的模型数组。使用模型创建第二个阵列。通过addModel方法将第二个数组的模型添加到建模代理对象中。如果建模机构的模型超过4个,则给出一个错误。

当将模型分配给零件中的数组元素时,我得到了这个NullPointerException错误:

this.modelList[modelCount] = new Model(modelp);
this.modelCount++;

任何与modelList相关的东西都会给出一个空指针异常

我写了"默认"gay模型来消除np异常,但用这些初始化数组也没有解决问题。

由于空指针异常,我无法尝试代码,所以可能会有更多错误,我会在消除空指针异常后尽快修复它们。

public class ModelingAgency {
// properties
private String name;
private int modelCount;
private Model[] modelList;
// contructors
public ModelingAgency ( String name) {
this.name = name;
Model[] modelList = new Model[4];
modelCount = 0;
// for ( Model model: modelList){
for ( int i = 0; i < modelList.length; i++)
modelList[i] = new Model ("Default", "Gay", 69);
}

// methods
public int addModel ( Model modelp ) {
if (modelp == null)
return -4;
if ( this.modelCount > 4){
//System.out.println("Can't add too much models.");
return -1;
}
for ( int i = 0; i < modelCount; i++){
if (modelp.equals(this.modelList[i])) {
return -2;
}   
}
if (!(modelp.checkAge())){
return -3;
}
this.modelList[modelCount] = modelp; // LINE OF NULL POINTER EXCEPTION
this.modelCount++;
return 0;
}
public String toString (){
String result = "";
for (int i = 0; i < modelCount; i++ ){
result+= " " + this.modelList[i] + " n";
}
return result;
}
}

您正在ModelingAgency构造函数中隐藏实例变量modelList,从而初始化具有相同名称的局部变量。更改

Model[] modelList = new Model[4];

modelList = new Model[4];

最新更新