gpt4 book ai didi

java - Eclipse 4 RCP 没有将对象注入(inject)到我的类中

转载 作者:行者123 更新时间:2023-11-30 02:23:12 25 4
gpt4 key购买 nike

我正在尝试将一个对象注入(inject)到我自己的类 (OpenProjectItemHandler) 中,如下上下文所示。但注入(inject)的对象 (eventBroker) 为 null。我们如何注入(inject)对象?

public class ProjectExplorerPart {

protected TreeViewer viewer;

//@Inject IEventBroker eventBroker;

@PostConstruct
public void createComposite(Composite parent) {
//...
viewer.addDoubleClickListener(new OpenProjectItemHandler());

//...
}
}


public class OpenProjectItemHandler implements IDoubleClickListener {

@Inject IEventBroker eventBroker;

@Override
public void doubleClick(DoubleClickEvent event) {
//...
//IEclipseContext eclipseContext = E4Workbench.getServiceContext();
//eventBroker = eclipseContext.get(IEventBroker.class);
eventBroker.send("ta/project_explorer/open_item", Collections.EMPTY_LIST);
}
}
}

最佳答案

使用new创建的对象不会被注入(inject)。您需要使用 ContextInjectionFactory.make 来创建对象。

public class ProjectExplorerPart {

protected TreeViewer viewer;

@PostConstruct
public void createComposite(Composite parent, IEclipseContext context) {
//...

OpenProjectItemHandler handler
= ContextInjectionFactory.make(OpenProjectItemHandler.class, context);

viewer.addDoubleClickListener(handler);

//...
}
}

关于java - Eclipse 4 RCP 没有将对象注入(inject)到我的类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46276684/

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