如何覆盖inherit gwt模块的延迟绑定配置
是否可以覆盖继承模块的延迟绑定配置 以下是一个例子: 在我想使用的模块中,延迟绑定声明如下如何覆盖inherit gwt模块的延迟绑定配置,gwt,inheritance,Gwt,Inheritance,是否可以覆盖继承模块的延迟绑定配置 以下是一个例子: 在我想使用的模块中,延迟绑定声明如下moduleA.gwt.xml: <replace-with class="A1Impl"> <when-type-is class="A"/> </replace-with> <replace-with class="A2Impl"> <when-type-is class="A"/> <when-property
moduleA.gwt.xml
:
<replace-with class="A1Impl">
<when-type-is class="A"/>
</replace-with>
<replace-with class="A2Impl">
<when-type-is class="A"/>
<when-property-is name="p" value="1"/>
</replace-with>
<inherits name='moduleA'/>
<set-property name="p" value="1" />
但另外,我想覆盖inherit模块的延迟绑定配置,以使用我自己的A
实现。我在模块中尝试了类似的方法,但没有成功:
<replace-with class="B1Impl">
<when-type-is class="A"/>
<when-property-is name="p" value="1"/>
</replace-with>
它应该这样说:如果属性p
具有值1
,则不要使用A2Impl
(在继承模块中声明),而是使用我自己的实现B1Impl
这可能吗
提前感谢您的帮助。简而言之,是的,您可以重新定义任何已设置的重新绑定规则。只需继承您正在更改的模块,然后在重新绑定规则之后进行更改
<inherits name="package.to.ModuleA" />
<set-property name="p" value="1" />
对于上面的代码,p总是1,所以设置关于p的具体规则有点愚蠢。除非p可以不是1,否则当属性为规则时,实际上甚至不需要
只要在继承
语句后列出替换为
就看起来正确。出于这个原因,我总是鼓励开发人员首先列出所有继承
规则,然后使用
替换任何和生成
或设置属性
规则
要了解更多细节,您需要发布更具体的内容。谢谢!这就是我所缺少的信息:“最后一个胜出!”同样的规则适用于设置属性
和设置配置属性
规则-以后的规则胜出,因此您可以始终覆盖已设置的设置一次。