4

Eclipse 在实例化扩展点时调用默认(零参数)构造函数。我想提供一些论据。我找到了使用建议,IExecutableExtension#setInitializationData但这似乎需要在 XML 中静态指定参数值。我需要他们是动态的。另一个建议是实施IExecutableExtensionFactory,但这似乎是沉重的。(该接口似乎也毫无意义,因为它包含的只是一个create()方法。)我可以添加一个方法来在创建后设置值,但是没有它们我的类将无法正常工作,并且它们不应在创建后更改,因此强制它们最好在对象创建时提供。这不可能是一个独特的情况。处理这个的标准方法是什么?

4

1 回答 1

-1

如果论点需要是“动态的”,那么它们从何而来?Eclipse 如何知道要使用哪些值?扩展点对象是在插件激活时创建的,因此此时没有太多可用的上下文。

我认为对你来说最好的选择IExecutableExtensionFactory毕竟是使用。您的工厂可以实现IExecutableExtension接收 XML 配置数据,然后根据该数据和您可以提供给它的任何其他上下文进行编码以创建对象。

根据您的需要,您可以使用动态字符串替换变量将某些上下文插入到您的工厂中。另请参阅Eclipse 插件的 plugin.xml 中的外部化字符串

于 2012-07-28T02:20:56.623 回答