Eclipse rcp 重复使用PDE';s ManifestEditor和满足NullPointerException
1.我们计划做什么: 重新使用Eclipse rcp 重复使用PDE';s ManifestEditor和满足NullPointerException,eclipse-rcp,eclipse-plugin,eclipse-pde,pde,Eclipse Rcp,Eclipse Plugin,Eclipse Pde,Pde,1.我们计划做什么: 重新使用ManifestEditor打开MANIFEST.MF文件,并将我们的功能添加到第一个概览页面 2.我们已经知道和做过的事情: 使用内部类和API是危险的,因此我们创建了一个扩展ManifestEditor的ManifestEditorNew import org.eclipse.pde.internal.ui.editor.plugin.ManifestEditor; import org.eclipse.pde.internal.ui.editor.plugin
ManifestEditor
打开MANIFEST.MF
文件,并将我们的功能添加到第一个概览页面
2.我们已经知道和做过的事情:
使用内部类和API是危险的,因此我们创建了一个扩展ManifestEditor的ManifestEditorNew
import org.eclipse.pde.internal.ui.editor.plugin.ManifestEditor;
import org.eclipse.pde.internal.ui.editor.plugin.OverviewPage;
public class TheNewManifestEditor extends ManifestEditor{
//it's strange that the default fist page is not the OverviewPage,so we override this method
@Override
protected String computeInitialPageId() {
return OverviewPage.PAGE_ID;
}
}
3.我们遇到的例外情况:
NullPointerException。
一旦我们的TheNewManifestEditor
获得关注,他们会给我们一个NPE,但我们找不到导致这一点的蚂蚁线索。
您可能需要调用
super.computeInitialPageId()
,因为它看起来好像进行了一些设置
注意:概览页面不总是显示的原因是,编辑器会记住您查看的最后一页的内容,并显示给您。第一次编辑清单时,它将默认为概览页面
仅仅扩展一个内部类并不能消除这样一个事实,即您正在使用违反。内部类可以而且确实会发生变化,有时甚至完全消失,在Eclipse版本之间移动时可能会遇到很多麻烦。您仍然在使用内部类,只是扩展类没有帮助。这些内部类可以而且确实在不同版本之间更改,有时甚至完全消失。因此,在我的情况下,我应该重新编写一个新的编辑器吗?我们只想在
概览页面
中做一些简单的更改。构建一个新的编辑器将花费太多的精力。有什么建议吗?我在清单编辑器中看不到任何“官方”接口,因此要么编写自己的编辑器,要么冒险——但我在这里看到了一些问题,人们在将代码更新到新版本时遇到了很大的问题,因为内部类发生了很大的更改。