2017-11-07 12 views
0

eclipse IDE製品を362から422に移行しています。WorkbenchWindowはApplicationWindowから派生していないため、キャストキャスト例外をスローする以下のコード行があります。 eclipse 4.x用eclipse 4.xの代わりにorg.eclipse.jface.window.ApplicationWindow

ICoolBarManager coolBarMgr =((ApplicationWindow)ウィンドウ).getCoolBarManager();

例外:java.lang.ClassCastExceptionが:org.eclipse.ui.internal.WorkbenchWindowは回避策としてorg.eclipse.jface.window.ApplicationWindow

にキャストすることはできません、私はRCPアプリケーションのためのラインの下に使用することができますorg.eclipse.ui.application.WorkbenchWindowAdvisorを継承します。

ICoolBarManager coolBarMgr = getWindowConfigurer()。getActionBarConfigurer()。getCoolBarManager();

しかし、私はEclipse IDE(rcpではない)を使用して、org.eclipse.ui.application.WorkbenchWindowAdvisorを拡張するプラグインがないので、上記の回避策は役に立たない。

多くのコード変更をせずにgetWindowConfigurer()を使用せずにICoolBarManagerを取得するには、別の解決策を提案してください。 ORがあるので、org.eclipse.ui.application.WorkbenchWindowAdvisorを拡張しない別のプラグインからgetWindowConfigurer()を使用できますか?

ご協力いただければ幸いです。前もって感謝します。

答えて

0

WorkbenchWindowgetCoolBarManager2方法を持っていますが、WorkbenchWindowのでこれは本当に使うべきではありません内部クラスです(でも、あなたの元のメソッド必要があります)。私は、ICoolBarManagerにアクセスする正式な方法があるとは思わない。

注意Eclipse 4.2.2はかなり古くなっています。それ以来、Eclipse 4には多くの修正が加えられています。

+0

ありがとうございます。これは実際には機能しますが、メソッドの使用はお勧めしません。落胆したメソッドやクラスを使用した結果、何がわかりますか?また、あなたがそれが助けになると示唆している場合は、任意の代替。再度、感謝します。 –

+0

内部クラスはいつでも変更できますが、リリースによってコードが壊れる可能性があります。元のメソッドもルールを破っていました。なぜなら、Workbenchウィンドウが 'ApplicationWindow'を拡張したという事実は、あなたが頼りにすべきではない実装の詳細だったからです。 [Eclipse APIの利用規約](https://www.eclipse.org/articles/Article-API-Use/index.html) –

+0

貴重なご意見ありがとうございます。 –

関連する問題