e4 设置 ESelectionService 为空
e4 Set ESelectionService Null
在执行方法后,我想设置当前选择 null
。我做到了这一点,但它行不通。之后,selection
仍然持有 a 值,该值不为空。
@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);
}
}
有多种选择服务,每个上下文一个 (IEclipseContext
)。您可能在错误的上下文中设置了选择。
将 ESelectionService
作为 class 的字段注入可能意味着您最终得到了错误的服务。始终将其作为 execute
方法的参数注入。
... no field injection
@Execute
public void execute(ESelectionService selection, @Named(IServiceConstants.ACTIVE_SELECTION) Foo foo, Shell shell) {
在执行方法后,我想设置当前选择 null
。我做到了这一点,但它行不通。之后,selection
仍然持有 a 值,该值不为空。
@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);
}
}
有多种选择服务,每个上下文一个 (IEclipseContext
)。您可能在错误的上下文中设置了选择。
将 ESelectionService
作为 class 的字段注入可能意味着您最终得到了错误的服务。始终将其作为 execute
方法的参数注入。
... no field injection
@Execute
public void execute(ESelectionService selection, @Named(IServiceConstants.ACTIVE_SELECTION) Foo foo, Shell shell) {