2017-02-12 78 views
-1

我的程序从文本文件中读取以根据匹配的模式创建对象。这是至少一个,但它可能高达4,这取决于文件,我需要每个人都单独存储。如果object1不存在,则创建它,如果已有object1,则创建object2。但是我正在努力与IDE告诉我,我还没有实例化object1或它最终只是创建object1(当我将它移动到类变量)。我可以理解为什么会这样做,但在解决问题的时候我会感到不知所措。Java - 创建多个对象并使它们可区分

所以,我想是这样的:

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总是空我猜)。但我该如何解决这个问题?如何检查一个对象是否已经存在,并在需要时创建一个新对象?

+0

'但是我跟无论是IDE挣扎告诉我,我还没有对信息的实例化的object1'你的这个陈述让我觉得你缺乏太多的基础知识。回答你的问题基本上意味着给你讲一些关于Java知识的章节。你的问题也不清楚。你的对象在文本文件中的表现如何? MyObject的属性是什么? – user3437460

回答

0

是的你是对的。在此代码中,object1始终为空,因此如果条件为

patternMatchFound 

是true,那么第一个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(); 
} 
}