gpt4 book ai didi

java - 我应该处理从 EditorSupport 返回的 jface CellEditors

转载 作者:行者123 更新时间:2023-12-04 06:26:18 28 4
gpt4 key购买 nike

我应该处理CellEditorEditingSupport.getCellEditor 返回,如果是这样,我应该什么时候做。

关于 jface 的教程之一 TableViewer我看到以下片段:

public class FirstNameEditingSupport extends EditingSupport {

@Override
protected CellEditor getCellEditor(Object element) {
return new TextCellEditor(viewer.getTable());
}

那么如果多次编辑单元格,这种方法会泄漏内存吗?或者我应该只是懒惰初始化 CellEditor :
 public class FirstNameEditingSupport extends EditingSupport {

CellEditor editor;

@Override
protected CellEditor getCellEditor(Object element) {
if(editor == null){
editor = new TextCellEditor(viewer.getTable());
}

return editor;
}

最佳答案

如果你使用这样的 EditingSupport,第一个片段对我来说看起来像是一个令人讨厌的泄漏。为 ViewerColumns .看看ColumnViewerEditor的来源就知道了,类(class)处理大量工作 CellEditors .有很多线,比如

if(part.getEditingSupport() != null)

(其中 partViewerColumn )。这些调用创建了一个 Text TextCellEditor 的构造函数中的实例.但自从 EditingSupport实例未分配,它将立即被 GCed。 Text实例不会被释放(直到它的父级被释放)。泄露。

所以你的第二个片段似乎更好。

哪个教程?也许你应该报告那个。

关于java - 我应该处理从 EditorSupport 返回的 jface CellEditors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6008680/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com