使用JavaFX,是否可以防止GUI树中的节点获取对其父节点的引用?
以这种结构为例
AnchorPane > BorderPane > Pane
我如何确定最后一个窗格无法通过调用.getParent()访问其父BorderPane?
我之所以需要它,是因为我正在从不受信任的代码中加载“ Pane”,并且不希望它与包含它的主窗口组件混淆。
最佳答案
一种解决方案是在您的BorderPane
和不受信任的Pane
之间插入一个中间父级。该父级可以阻止对其自身父级的访问。
但是,方法getParent和parentProperty是final
,没有阻止节点访问其父节点的标准方法。
其他选项可能是获得您自己的副本或jre允许覆盖*parent*
方法,或者是一些基于反射的hacky代码。