我的程序从文本文件中读取以根据匹配的模式创建对象。它至少是一个,但最多可以是4个,具体取决于文件,我需要将它们中的每一个单独存储。如果object1
不存在,请创建它,如果已有object1
,则创建object2
。但我正在努力使用IDE告诉我我还没有实例化object1
,或者它最终只是创建object1
(当我将它移动到类变量时)。我能理解它为什么会这样做,但在谈到如何解决它时我感到很茫然。
所以我尝试过这样的事情:
MyObject object1;
if(patternMatchFound){
if(object1 == null){
object1 = new MyObject();
}else if(object 1 != null){
object2 = new MyObject();
}else if(object2 != null){
object3 = new MyObject();
}else if(object3 != null){
object4 = new MyObject();
}
}
这总是只创建第一个对象(因为object1
总是为null)。但是我该如何解决这个问题呢?如何检查对象是否已存在并在需要时创建一个新对象?
答案 0 :(得分:0)
是的,你是对的。在此代码中,object1始终为null,如果条件为
patternMatchFound
为真,然后执行第一个if。
我不知道你的真实问题但是你提供的信息不得不执行你的if语句4次
MyObject object1,object2,object3,object4;
for(int i = 0; i<4 && patternMatchFound; i++){
if(object1 == null){
object1 = new MyObject();
}else if(object 1 != null){
object2 = new MyObject();
}else if(object2 != null){
object3 = new MyObject();
}else if(object3 != null){
object4 = new MyObject();
}
}