你好我是一名新的计算机工程专业的学生和学习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相关的任何内容都会产生空指针异常
我编写了“默认”同性恋模型以摆脱np异常,但使用这些异常对数组进行初始化也没有解决问题。
由于空指针异常,我无法尝试代码,所以可能会有更多的错误我会尝试将它们作为soons来解决,因为我摆脱了空指针异常。
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;
}
}
答案 0 :(得分:3)
您在modelList
构造函数中阴影您的实例变量ModelingAgency
,因此初始化具有相同名称的本地变量。改变
Model[] modelList = new Model[4];
到
modelList = new Model[4];