3

我读过org.eclipse.e4.core.contexts.IContextFunction但在网上找不到一个实际的例子。
我的理解是一个组件实现了一个IContextFunction并且在调用compute另一个对象时是延迟创建的。但是我不清楚
如何/何时调用该方法。 例如以下内容: compute

<?xml version="1.0" encoding="UTF-8"?>  
<scr:component xmlns:scr="http://www.osgi.org/xmlns/scr/v1.1.0"   
  name="com.example.e4.rcp.todo.contextservice.translate">  

<implementation class="com.example.e4.rcp.todo.contextservice.Test"/>  

 <service>  
   <provide interface="org.eclipse.e4.core.contexts.IContextFunction"/>  
 </service>  

 <property name="service.context.key" type="String"   
   value="com.example.e4.rcp.todo.contextservice.test"/>  

</scr:component>   

必须有人要求调用 for,com.example.e4.rcp.todo.contextservice.testcompute我不清楚它是如何使用的。
有人有示例参考吗?

4

1 回答 1

5

It is what gets injected into your pojos. E.g.

public class YourPojo {
   @Inject
   @Named("com.example.e4.rcp.todo.contextservice.test")
   private Object yourObject;
}

OR

public class YourPojo {
   @Inject
   public void test(IEclipseContext ctx) {
        Object yourObject = ctx.get("com.example.e4.rcp.todo.contextservice.test");
   }
}

OR

public class YourPojo {
   @Inject
   public void test(@Named("com.example.e4.rcp.todo.contextservice.test") Object yourObject) {
      // consume yourObject
   }
}
于 2012-10-21T20:33:57.243 回答