首页 > 解决方案 > 加载的类的类型不正确: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-plugin

解决方案


文档有误,请参阅 Eclipse bug 509635

类必须扩展org.eclipse.ui.menus.WorkbenchWindowControlContribution


推荐阅读