2013-04-14 49 views
-1

目前,我遇到了一個看起來是一個意外錯誤的問題。 我正在用java語言進行編程,使用eclipse作爲IDE。一個列表變空了而沒有在java中修改它

問題列表聲明如下:

private final List<Integer> resList; 

使用的eclipse的「觀察點」功能在調試程序時,我已經看到了以下過程: 兩次返回resList名單後,並在第三次返回之前,列表突然變空。

如果有人有建議讓我解決這個問題,我會很高興?

關於代碼,我張貼的所有訪問resList名單,並在程序中調用的方法:

這是第一個:

public CloudInformationService(String name) throws Exception { 
     super(name); 
     resList = new LinkedList<Integer>(); 
     arList = new LinkedList<Integer>(); 
     gisList = new LinkedList<Integer>(); 
    } 

,第二個:

public void processEvent(SimEvent ev) { 
     int id = -1; // requester id 
     switch (ev.getTag()) { 
       ... 
        // A resource is requesting to register. 
      case CloudSimTags.REGISTER_RESOURCE: 
      resList.add((Integer) ev.getData()); 
      break; 
       ... 
      } 
    } 

最後,第三個:

private static CloudInformationService cis; 
    public static List<Integer> getCloudResourceList() { 
     if (cis == null) { 
      return null; 
     } 

     return cis.getList();// The implementation of this method is listed below 
    } 

    public List<Integer> getList() { 
      return resList; 
    } 

預先感謝您。

+7

有些代碼好嗎? – Maroun

+0

你的聲明看起來不錯,但你的初始化在哪裏?你能提供一些代碼嗎? –

+1

您可以發佈該方法嗎?該方法返回列表或可能訪問列表的代碼的其他部分? – GameDroids

回答

0

第1步:使用ctrl + alt + H查找對resList的引用,並查找調用remove,clear,removeAll的方法。如果有太多的方法使用resList移動​​到第2步。

第2步:在CloudInformationServices構造函數中設置斷點時,在LinkedList/AbstractList中設置斷點(在JDK中)全部刪除,清除,removeAll方法。在斷點視圖中,右鍵單擊resList並選擇實例斷點。選擇所有刪除,清除,刪除所有斷點並繼續執行。現在你會得到一個斷點,並可以從列表被清空的位置觀察。

沒有更多的代碼,恐怕沒有太多的幫助。

相關問題