小编And*_*dyB的帖子

org.eclipse.e4.core.di.InjectionException:java.lang.NullPointerException

这是问题所在.我使用向导创建了一个示例Eclipse 4(Luna)应用程序.一切都很好.我决定将用户界面移动到专用插件.我创建了新的插件,将所有类移动到新的插件并重构了Eclipse Application Model,产品和插件配置.现在,当我尝试启动Eclipse产品时,我得到了这个依赖注入异常.当我调试时,我注意到所有UI组件变量都具有空值:

package my.company.ui.parts;

import javax.annotation.PostConstruct;
import javax.inject.Inject;

import org.eclipse.e4.ui.di.Focus;
import org.eclipse.e4.ui.di.Persist;
import org.eclipse.e4.ui.model.application.ui.MDirtyable;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Text;

public class SamplePart {

    private Text txtInput;
    private TableViewer tableViewer;

    @Inject
    private MDirtyable dirty;

    @PostConstruct
    public void createComposite(Composite parent) {
        parent.setLayout(new GridLayout(1, false));

        txtInput = new Text(parent, SWT.BORDER);
        txtInput.setMessage("Enter text to mark part as dirty");
        txtInput.addModifyListener(new ModifyListener() {
            @Override
            public void modifyText(ModifyEvent e) {
                dirty.setDirty(true);
            }
        });
        txtInput.setLayoutData(new …
Run Code Online (Sandbox Code Playgroud)

eclipse dependency-injection eclipse-plugin eclipse-rcp e4

5
推荐指数
1
解决办法
5650
查看次数