执行方法后,我想设置当前选择null
。我做到了这一点,但它没有工作。之后,selection
仍保留a值,该值不为null。
@Inject
private ESelectionService selection;
@Execute
public void execute(@Named(IServiceConstants.ACTIVE_SELECTION) Foo foo, Shell shell) {
if (true) {
//do something!
final Object NULL_OBJECT = new Object();
selection.setSelection(NULL_OBJECT);
}
}
答案 0 :(得分:1)
有多个选择服务,每个上下文一个(IEclipseContext
)。您可能在错误的上下文中设置选择。
将ESelectionService
注入您的班级字段可能意味着您最终得到了错误的服务。始终将此作为execute
方法的参数注入。
... no field injection
@Execute
public void execute(ESelectionService selection, @Named(IServiceConstants.ACTIVE_SELECTION) Foo foo, Shell shell) {