gpt4 book ai didi

java - E4 EPartService findPart() 抛出 java.lang.Null 指针异常

转载 作者:行者123 更新时间:2023-12-02 05:41:13 25 4
gpt4 key购买 nike

Eclipse RCP (e4) 新手,我正在尝试获取处理程序来更新部件内的 UI 小部件。

我尝试注入(inject) EPartService 以首先按 ID 访问部件,如下所示:

public class Example {

public static final String PART_ID = “au.org.example.app.part”;

@Inject
private EPartService partService;

public void eventOccured()
{
MPart part = partService.findPart(PART_ID); // exception thrown here
}

}

但这会引发 NPE。

如果 ID 不正确,

findPart() 至少应该安全地返回 null 吗?那么我错过了什么?

我也愿意接受相关教程的建议(已经完成了一些Lars Vogella's很棒的教程,但对这个问题没有任何作用)。

需要任何进一步的信息,请告诉我。

编辑:看起来EPartService没有被注入(inject)?是我没有添加正确吗?

最佳答案

注入(inject)仅在应用程序模型已知的对象上自动完成 - 例如部件和处理程序。

对于您创建的对象,您可以使用ContextInjectionFactory进行注入(inject)。您可以使用以下方式创建对象:

@Inject
IEclipseContext context;

...

MyClass myClass = ContextInjectionFactory.make(MyClass.class, context);

或者您可以使用以下方法对现有类实例进行注入(inject):

ContextInjectionFactory.inject(myClass, context);

在这种情况下,注入(inject)不会在类构造函数上完成。

还有 makeinject 的其他变体,它们具有第二个上下文,允许将其他值添加到正在注入(inject)的上下文中。

关于java - E4 EPartService findPart() 抛出 java.lang.Null 指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24503116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com