【发布时间】:2014-01-27 15:29:14
【问题描述】:
我目前正在开发 E4 RCP 应用程序,但遇到以下问题: 我有一个在应用程序打开时不可见的部件(toBeRendered="false" visible="false")。 当按钮点击另一个 Part 时,我会执行以下操作:
MPart s = partService.findPart("S");
if (s != null) {
s.setToBeRendered(true);
s.setVisible(true);
partService.activate(s); }
这很好用。因此,如果用户打开部件,则会通过类在该部件上创建一个合成,并且在这个类中我有依赖注入:
public class S {
....
@Focus
public void focusGained() {
...
MyComposite m = new MyComposite(parent, SWT.NONE);
...
}
}
public class MyComposite extends Composite {
@Named("list")
private HashMap<String, Ex> myMap;
public MyComposite(Composite parent, int style) {
super(parent, style);
myMap.get("key");
}
}
但我在 myMap.get("key"); 处得到 NullPointerException所以注射不起作用。 它适用于另一个零件,该零件是在创建此合成之前创建的,所以我不明白为什么此注入不起作用。
有人可以帮帮我吗?
【问题讨论】:
标签: java dependency-injection swt e4