繁体   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