Java JFace将面对不同的已删除POJO实例
我有一个用POJO包装的Java JFace将面对不同的已删除POJO实例,java,drag-and-drop,swt,jface,Java,Drag And Drop,Swt,Jface,我有一个用POJO包装的标签。所有外部操作都委托给标签 I(内部)将一个DragSource挂接到所述标签上。传输是LocalSelectionTransfer 实现DragSourceAdapter: @Override public void dragSetData(DragSourceEvent e) { transfer.setSelection(new StructuredSelection(this)); // *this* is the POJO wrapper }
标签。所有外部操作都委托给标签
I(内部)将一个DragSource
挂接到所述标签上。传输是LocalSelectionTransfer
实现DragSourceAdapter
:
@Override public void dragSetData(DragSourceEvent e)
{
transfer.setSelection(new StructuredSelection(this)); // *this* is the POJO wrapper
}
问题:
在丢弃事件(外部)时,如果我这样做
final Object newObj = ((StructuredSelection) transfer.getSelection()).getFirstElement();
newObj将是POJO$1
,或POJO$2
等
原因是什么?为什么不给我一个实例POJO
?正如您所说,新结构选择(this)
在DragSourceAdapter
的实现中,因此this
是实现(您的“POJO”的匿名内部类),而不是POJO本身!您需要newstructuredselection(POJO.this)
来引用外部实例(显然,用类的实际名称替换POJO
)
顺便说一句,但我不会将与GUI直接相关的类称为“POJO”。正如您所说,新结构选择(this)
在DragSourceAdapter
的实现中,因此this
是实现(您的“POJO”的匿名内部类),而不是POJO本身!您需要newstructuredselection(POJO.this)
来引用外部实例(显然,用类的实际名称替换POJO
)
有点旁白,但我不会将直接与GUI相关的类称为“POJO”