我目前正在研究新的Eclipse RCP框架,并对处理程序有疑问。在RCP 3.xa中,处理程序类需要实现接口,因此在指定方法的地方。在RCP 4中,处理程序类不需要实现接口。相反,您可以对方法进行注释。例如,如果您ExitHandler
在Vogellas教程中有一个,则您有一个@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
注释,所以当触发事件和处理程序将要执行的发生以下情况:
@Execute
注解标记的方法IWorkbench
)除非@Optional
设置了注释,否则如果在上下文中未找到对象,则将引发异常。
有关更多阅读和更详尽的解释,请参阅Eclipse 4(e4)教程第4部分-依赖注入基础知识和Eclipse 4(e4)教程第6部分:行为注释。
Eclipse 4批注的概述可以在Eclipse 4 Wiki上找到。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句