E4不会调用我的@ PostConstruct-Method

时间:2015-11-09 16:02:44

标签: eclipse eclipse-plugin eclipse-rcp e4

我的E3-RCP应用程序迁移到E4时遇到了问题。 我有3个部分。 2使用Lars Vogel的样本内容(http://www.vogella.com/tutorials/EclipseRCP/article.html#plugin_creatinge4“使用SWT电源小部件”)测试并与我的部分进行比较。

Long Story short(呃):不会调用应该创建用@PostConstruct标记的View内容的Method,但是SampleContent的@PostConstruct会被调用。有什么理由? 调用MyView的构造函数。

我的观点结构如下:

Many Imports

public class MyView1 implements IRefreshableView, ISomeListener {

a lot of fields, some are injected...

public MyView1()  {
        reference to the Activator-Class to get some item.
    }

@PostConstruct
public void createControls(Composite parent) {
        createViewToolbar();``

and much more Part Creation stuff that won´t be invoked...

}

much more methods
@Focus
    public void setFocus() {
        if (treeViewer.getTree().isVisible()) {
            treeViewer.getTree().setFocus();
        } else {
            mainForm.setFocus();
        }
    }

}

new class definition in the same file. 

END

很抱歉没有发布整个代码,就像1000行一样:/

我在Win7上使用Mars 4.5.1

1 个答案:

答案 0 :(得分:2)

@PostConstruct无法运行的一个原因是直接注入代码无法找到注入字段(或注入的构造函数)的对象。如果发生这种情况,注射器只会记录错误并停止。

错误记录在' .log'工作区中的文件' .metadata' 。目录