2017-02-12 36 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(); 
} 
} 
相關問題