Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JFace将面对不同的已删除POJO实例_Java_Drag And Drop_Swt_Jface - Fatal编程技术网

Java JFace将面对不同的已删除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 }

我有一个用POJO包装的
标签。所有外部操作都委托给标签

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”