Eclipse RCP 4-处理程序方法参数

莫兰迪尔

我目前正在研究新的Eclipse RCP框架,并对处理程序有疑问。在RCP 3.xa中,处理程序类需要实现接口,因此在指定方法的地方。在RCP 4中,处理程序类不需要实现接口。相反,您可以对方法进行注释。例如,如果您ExitHandlerVogellas教程中有一个您有一个@Execute注释。如您所见,IWorkbench传递了一个参数。

package com.example.e4.rcp.todo.handler;

import org.eclipse.e4.core.di.annotations.Execute;
import org.eclipse.e4.ui.workbench.IWorkbench;

public class ExitHandler {
  @Execute
  public void execute(IWorkbench workbench) {
    workbench.close();
  }
} 

我现在的问题是:使用某些批注时,我如何知道要传递哪些参数?在这种情况下,我怎么知道我得到一个IWorkbench对象而不是Window对象之类的东西?实际上,我可以注释不带参数的方法,并且该方法仍将执行。

某处有文件吗?Eclipse e4 Tools似乎也不支持我...

采取模式

注释@Execute不会确定要注入的类型,方法声明会确定。

作为行为注释,@Execute标记执行处理程序时应调用的方法。要注入的对象的类型由方法的参数确定。要注入其他对象类型,请更改方法的参数,例如

@Execute
public void execute(MWindow window) {
    // method body
}

MWindow从活动上下文中注入一个

@Execute注释包含@Inject注释,所以当触发事件和处理程序将要执行的发生以下情况:

  1. 框架寻找由@Execute注解标记的方法
  2. 在E4上下文中搜索该方法的参数类型的对象(例如IWorkbench
  3. 该对象被注入并执行该方法

除非@Optional设置注释,否则如果在上下文中未找到对象,则将引发异常。

有关更多阅读和更详尽的解释,请参阅Eclipse 4(e4)教程第4部分-依赖注入基础知识Eclipse 4(e4)教程第6部分:行为注释

Eclipse 4批注的概述可以在Eclipse 4 Wiki上找到

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章