eclipse-plugin - 加载的类的类型不正确:expected(org.eclipse.ui.menus.WorkbenchWindowControlContribution) got (de.blub.menu.ToolbarContributionItem)
问题描述
这是我在 plugin.xml 中的 menucontribution:
<menuContribution
locationURI="toolbar:org.eclipse.ui.main.toolbar?after=additions">
<dynamic
class="de.blub.menu.ToolbarContributionItem"
id="some.id">
<visibleWhen checkEnabled="false">
<!-- some conditions -->
</visibleWhen>
</dynamic>
</menuContribution>
ToolBarContributionItem 类根据文档的要求扩展了 CompoudStatement:
该元素提供了一种机制,该机制将回调到已定义的类中,以提供在构建菜单或工具栏时显示的 IContributionItem。定义的类必须是 org.eclipse.jface.action.ContributionItem 基类的派生类。它还可以使用 org.eclipse.ui.action.CompoundContributionItem并为抽象 getContributionItems 方法提供实现,以提供动态菜单项。
public class ToolbarContributionItem extends CompoundContributionItem {
...
但我收到错误消息
!MESSAGE Loaded class is of incorrect type: expected(org.eclipse.ui.menus.WorkbenchWindowControlContribution) got (de.blub.menu.ToolbarContributionItem)
!STACK 0
java.lang.IllegalArgumentException: Loaded class is of incorrect type: expected(org.eclipse.ui.menus.WorkbenchWindowControlContribution) got (de.blub.menu.ToolbarContributionItem)
at org.eclipse.ui.internal.util.Util.safeLoadExecutableExtension(Util.java:713)
那么这里有什么问题呢?
解决方案
文档有误,请参阅 Eclipse bug 509635。
类必须扩展org.eclipse.ui.menus.WorkbenchWindowControlContribution
推荐阅读
- angular - 订阅可观察对象时,去抖动时间不起作用
- java - PowerMockito 模拟对象为空
- php - 保护虚拟主机的配置文件
- javascript - 单击时如何创建箭头以滚动到下一个视频?特定于 HTML、CSS 和 Javascript
- reactjs - 为什么我的用户在导航到新页面时会注销(next.js/firebase auth using react context)?
- python - 从一台烧瓶服务器运行 APScheduler 和 twilio webhook
- python - 在 Pipeline 中结合 sklearn FeatureUnion 和 StackingClassifier 处理文本数据
- javascript - 是否可以在 d3.js 缩放中进行偏移/移位?
- jspdf - 带有 jsPDF .html() 功能的多页 pdf
- java - 使用 JDK 9 及更高版本时 Apache NetBeans 的模糊问题