簡體   English   中英

如何在Java(fx)中釋放靜態ObservableList

[英]How to release static ObservableList in Java(fx)

我在javafx應用程序中為tableview使用靜態可觀察列表。

  public class TableData {
          private static ObservableList<MyObject> data = FXCollections.observableArrayList();

          public static ObservableList<MyObject> getData(){
                 return data;
          }
  }

當我加載新數據時,我嘗試了幾種方法來刪除“舊”數據以釋放內存,例如

    TableData.getData().clear();

要么

    TableData.getData() = FXCollections.observableArrayList();

甚至

     for(int i=0; i< TableData.getData().size(); i++){
           MyObject mo = TableData.getData().get(i);
           mo=null;
     }

但是仍然沒有釋放內存(已通過netbeans Analyzer檢查)

男孩可以幫忙嗎?

您的問題與JavaFX無關。 通常,您應該學習如何在Java中處理引用。 您可以在這里這里找到介紹。

像您的示例中的代碼( TableData.getData() = FXCollections.observableArrayList(); )不會更改靜態集合的內部。 在此旁邊將這樣的東西定義為靜態值是反模式。

根據您的問題和示例,我假設您是Java語言的新手。 我更喜歡閱讀一般的Java書籍(請參閱此鏈接以獲得很好的概述)。 這將幫助您了解樣本中的一般問題。

通常,您幾乎在所有面向對象的語言中都具有相同的行為,因此即使是有關OOD的書/教程也可能是一個好主意:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM