嗨,我是一名计算机工程专业的新生,正在学习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];