我想测试我的Eclipse插件的命令处理程序类。这就是我想在这个处理程序类的构造函数中注入IWorkbenchWindow实例的原因,因为
PlatformUI.getWorkbench().getActiveWorkbenchWindow()
让我依赖于PlatformUI。
但是我试图这样做
@Inject
public FindAndReplaceHandler(IWorkbenchWindow workbenchWindow) {
this.fWorkbenchWindow = workbenchWindow;
然后框架抛出NoSuchMethodException,抱怨FindAndReplaceHandler类没有没有参数的构造函数。
我的类FindAndReplaceHandler扩展了AbstractHandler并覆盖了
void execute(ExecutionEvent event)
(所以我不会使用带有注释@Execute和@CanExecute的现代方式)
我的Eclipse版本是:Version:Mars.2(4.5.2)。 我使用设置Eclipse version =" 3.5或更高版本"创建了我的Eclipse插件项目。但是,我可能需要安装e4工具并使用它们吗?如何安装?
我很感激如何解决这个问题。
答案 0 :(得分:2)
@Inject样式的命令处理程序仅在编写纯e4样式插件时使用(这些插件不使用IWorkbenchWindow
或PlatformUI
)。
如果你想使用IWorkbenchWindow
,你正在编写3.x兼容模式插件,不能使用注入命令处理程序(以及大多数其他东西)。您必须具有命令处理程序的无参数构造函数。