我是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文件可以被之後處理的其他聲明所覆蓋,所以如果您使用聲明規則的模塊,則可以通過在包含原始聲明的模塊的繼承聲明之後聲明新規則來更改該規則。