我是GWT新手。我有下面的代码行。GWT.create是什么意思,为什么要使用它?
SomeClientServiceAsync someService = GWT.create(SomeClientService.class);
上面的代码是什么意思,为什么我不能使用任何其他替代方法来实例化它?
请帮帮我!
谢谢。
我是GWT新手。我有下面的代码行。GWT.create是什么意思,为什么要使用它?
SomeClientServiceAsync someService = GWT.create(SomeClientService.class);
上面的代码是什么意思,为什么我不能使用任何其他替代方法来实例化它?
请帮帮我!
谢谢。
GWT.create
用于延迟绑定。这使您可以根据用户的浏览器提供相同服务的不同实现。请参见以下问题:
Why use GWT.create() instead of new?
如果没有需要有你的服务的多种实现,只是通过新的创造吧!
GWT通过创建就像RMI做了服务。在这里,您正在创建驻留在客户端软件包中的服务SomeClientService。它包含所有可以称为服务器端的功能。
GWT.create作品以不同的方式:
例子:
<replace-with class="com.x.app.client.ui.base.button.CustomSlicedButtonCellAppearance">
<when-type-is class="com.x.app.client.ui.base.button.CustomButtonCellAppearance" />
<when-property-is name="gxt.css3.enabled" value="false"/>
<when-property-is name="gxt.theme" value="themeName" />
</replace-with>
在这种情况下,它会使用CustomSlicedButtonCellAppearance用于向GWT.create(CustomButtonCellAppearance.class通话)只要CSS3不支持和给定的主题。请注意,“when-property-is”是可选的,如果未提供,它将始终将该实现用于给定接口。
实施例:
<generate-with class="org.fusesource.restygwt.rebind.RestServiceGenerator">
<when-type-assignable class="org.fusesource.restygwt.client.RestService" />
</generate-with>
在这种情况下,将RestServiceGenerator生成代码提交该请求。 另一个例子是UIBinder的工作原理:除了在界面中使用注释外,它还根据ui.xml文件中的内容生成代码。
声明中GWT。xml文件可以被之后处理的其他声明所覆盖,所以如果您使用声明规则的模块,则可以通过在包含原始声明的模块的继承声明之后声明新规则来更改该规则。