Я разрабатываю приложение e4. Я хочу, чтобы придать EPartService вне части и обработчика когда я инъекционный EPartService тогда я получу нулевой ошибку указателяКак внедрить EPartService
public class DisplayRuntimePart {
@Inject EPartService partService;
private void displayPart(){
MPart part=partService.findPart("com.rcpe4.myproject.part.datapart");
mpart.setVisible(true);
partService.showPart(mpart, PartState.CREATE);
}
}
Я тоже прочитал этот вопрос, но до сих не решить мою проблему E4 EPartService findPart() throwing java.lang.Null Pointer Exception
Редактировать Я вводил EPartService в класс Part. Класс URI в Application.e4xml - это bundleclass: //com.abc.test/com.abc.test.part.MyPart в этом классе. Я пишу код следующим образом.
Class Mypart{
@Inject EPartService prtservice;
@Inject
public MyPart() {
}
@PostConstruct
public void postConstruct(Composite parent) {
parent.setLayout(new FillLayout(SWT.HORIZONTAL));
htmlBrowser = new Browser(parent, SWT.NONE);
}
@PreDestroy
public void preDestroy() {
}
@Focus
public void onFocus() {
}
@Persist
public void save() {
}
public dispalyPart(){
MPart mpart=partService.findPart("com.abc.test.part.datapart"); **Here Getting Null Pointer Exception**
mpart.setVisible(true);
partService.showPart(mpart, PartState.CREATE);
}
}
Когда я @Inject IEclipseContext контекст; контекстный объект дает исключение нулевого указателя – Abhit
Пример кода DisplayRuntimePart myClass = ContextInjectionFactory.make (DisplayRuntimePart.class, контекст); MPart mpart = partService.findPart ("com.rcpe4.myproject.part.datapart"); mpart.setVisible (true); partService.showPart (mpart, PartState.CREATE); – Abhit
Вы должны запустить этот код в классе, который создается Eclipse из модели приложения, чтобы инъекция работала. Итак, MPart или обработчик или что-то в этом роде. –