Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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 Eclipse插件-如何在命令处理程序的构造函数中插入IWorkbenchWindow_Java_Eclipse_Eclipse Plugin_Eclipse Rcp - Fatal编程技术网

Java 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

我想测试我的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版本是:版本:Mars.2(4.5.2)。 我使用设置eclipseversion=“3.5或更高版本”创建了我的Eclipse插件项目。但是,也许我需要安装e4工具并使用它们?如何安装它们


非常感谢我提出的解决此问题的任何想法。

命令处理程序的@Inject样式仅在编写纯e4样式插件时使用(这些插件不使用
IWorkbenchWindow
PlatformUI

如果您想使用
IWorkbenchWindow
您正在编写一个3.x兼容模式插件,并且不能将注入用于命令处理程序(以及大多数其他东西)。命令处理程序必须具有无参数构造函数