小编V_M*_*V_M的帖子

自动调用超类方法

考虑以下课程

class A{
    public void init(){
        //do this first;
    }
    public void atEnd(){
        //do this after init of base class ends
    }
}

class B1 extends A{

    @Override
    public void init()
    {
        super.init();
        //do new stuff.
        //I do not want to call atEnd() method here...
    }
}
Run Code Online (Sandbox Code Playgroud)

我有几个已经开发的B1,B2,... Bn子类.所有这些都扩展了A类.如果我想在所有这些中添加一个新功能,最好的方法是在A类的方法中定义它.但条件是该方法应始终在之前自动调用子类的init()方法结束.一种基本的方法是在子类的init()方法结束时再次添加atEnd()方法调用.但有没有其他方法可以做到这一点?

java inheritance

10
推荐指数
1
解决办法
3506
查看次数

在 Eclipse 的选项卡式属性视图中添加动态选项卡

我正在尝试按照给定的文章创建选项卡式属性视图:Eclipse 选项卡式属性视图

根据文章,org.eclipse.ui.views.properties.tabbed.propertyTabs扩展点可用于添加新选项卡。

<extension point="org.eclipse.ui.views.properties.tabbed.propertyTabs">
      <propertyTabs contributorId="mview.views.SampleView">
         <propertyTab
            category="sample"
               id="mview.ButtonTab"
            label="Button"/>
         <propertyTab
            afterTab="mview.ButtonTab"
            category="sample"
               id="mview.AdvancedTab"
            label="Advanced"/>
      </propertyTabs>
   </extension>
Run Code Online (Sandbox Code Playgroud)

但是,在我的情况下,属性视图的选项卡因视图中选择的项目而异。所以我必须根据所选项目动态地将选项卡添加到扩展中。

请建议如何这样做。

更新:这样做的方法之一(我不确定是否建议)是使用 IExtensionRegistry.addContribution() 方法。在这里,我提供了一个包含所需扩展详细信息的 inputstream 对象。这在运行时向属性视图添加了选项卡。但是,随着列表查看器中项目选择的更改,属性视图不会更新。请建议这是否是这样做的正确方法。

eclipse-plugin jface eclipse-rcp

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

标签 统计

eclipse-plugin ×1

eclipse-rcp ×1

inheritance ×1

java ×1

jface ×1