4

Eclipse は、拡張ポイントをインスタンス化するときにデフォルト (引数なし) のコンストラクターを呼び出します。いくつかの引数を提供したいと思います。使用する推奨事項を見つけましたIExecutableExtension#setInitializationDataが、XML で引数値を静的に指定する必要があるようです。私はそれらが動的である必要があります。別の推奨事項は実装することでしたIExecutableExtensionFactoryが、それは手間がかかるようです。(含まれているのはメソッドだけなので、インターフェイスも無意味に見えますcreate()。) 作成後に値を設定するメソッドを追加できますが、クラスはそれらがないと正しく機能せず、作成後に変更するべきではないため、それらを強制しますオブジェクトの作成時に提供されることが望ましいです。これは特別な状況ではありません。これを処理する標準的な方法は何ですか?

4

1 に答える 1

-1

引数が「動的」である必要がある場合、それらはどこから来るのでしょうか? Eclipse は、使用する値をどのように知るのでしょうか? 拡張ポイント オブジェクトは、プラグインがアクティブ化されたときに作成されるため、その時点で利用できるコンテキストはあまりありません。

結局、あなたにとって最良の選択肢は使用することだと思いますIExecutableExtensionFactory。ファクトリはIExecutableExtension、XML 構成データを受け取るように実装できます。次に、ファクトリに使用できるその他のコンテキストに基づいてオブジェクトを作成するようにコーディングできます。

必要に応じて、動的文字列置換変数を使用して特定のコンテキストをファクトリに挿入できます。Eclipse プラグインの plugin.xml 内のストリングの外部化も参照してください。

于 2012-07-28T02:20:56.623 に答える