Java Eclipse插件-如何在命令处理程序的构造函数中插入IWorkbenchWindow
我想测试我的Eclipse插件的命令处理程序类。这就是为什么我想在这个处理程序类的构造函数中注入IWorkbenchWindow的实例,因为Java Eclipse插件-如何在命令处理程序的构造函数中插入IWorkbenchWindow,java,eclipse,eclipse-plugin,eclipse-rcp,Java,Eclipse,Eclipse Plugin,Eclipse Rcp,我想测试我的Eclipse插件的命令处理程序类。这就是为什么我想在这个处理程序类的构造函数中注入IWorkbenchWindow的实例,因为 PlatformUI.getWorkbench().getActiveWorkbenchWindow() 让我对PlatformUI产生依赖 但是我试着这么做 @Inject public FindAndReplaceHandler(IWorkbenchWindow workbenchWindow) { this.fWorkbenchWindow
PlatformUI.getWorkbench().getActiveWorkbenchWindow()
让我对PlatformUI产生依赖
但是我试着这么做
@Inject
public FindAndReplaceHandler(IWorkbenchWindow workbenchWindow) {
this.fWorkbenchWindow = workbenchWindow;
然后框架抛出NoSuchMethodException,抱怨FindAndReplaceHandler类没有无参数构造函数
我的类FindAndReplaceHandler扩展了AbstractHandler和重写
void execute(ExecutionEvent event)
(所以我不使用现代的方式来注释@Execute和@CanExecute)
我的Eclipse版本是:版本:Mars.2(4.5.2)。
我使用设置eclipseversion=“3.5或更高版本”创建了我的Eclipse插件项目。但是,也许我需要安装e4工具并使用它们?如何安装它们
非常感谢我提出的解决此问题的任何想法。命令处理程序的@Inject样式仅在编写纯e4样式插件时使用(这些插件不使用
IWorkbenchWindow
或PlatformUI
)
如果您想使用IWorkbenchWindow
您正在编写一个3.x兼容模式插件,并且不能将注入用于命令处理程序(以及大多数其他东西)。命令处理程序必须具有无参数构造函数