Eclipse在实例化扩展点时调用默认(零参数)构造函数。我想提供一些论点。我发现建议使用IExecutableExtension#setInitializationData
,但似乎需要在XML中静态指定参数值。我需要它们是动态的。另一项建议是实施IExecutableExtensionFactory
,但这似乎很重要。 (界面也似乎毫无意义,因为它包含的是一个create()
方法。)我可以添加一个方法来设置创建后的值,但是我的班级在没有它们的情况下无法正常工作,他们不应该这样做。在创建之后改变,因此强制在对象创建时提供它们是优选的。这可能是一种独特的情况。处理此问题的标准方法是什么?
答案 0 :(得分:-1)
如果争论需要“动态”,那么它们会来自哪里? Eclipse将如何知道要使用的值?激活插件时会创建扩展点对象,因此此时没有太多可用的上下文。
我认为最好的选择是使用IExecutableExtensionFactory
。您的工厂可以实现IExecutableExtension
来接收XML配置数据,然后进行编码以根据该对象和您可以使用的任何其他上下文创建对象。
根据您的需要,您可以使用Dynamic String Substitution Variables将某些上下文插入工厂。另请参阅Externalizing strings in plugin.xml for Eclipse plugin