通过GWT中的延迟绑定实例化接口



我正在读取GWT 的代码

基本上,在这个项目中,他们从properties file中获得一些类似于按钮文本的constant值。

所以他们有一个接口LocalizableResource,并获得类似的实例

public interface LocalizableResource extends Constants {
 public static class Util {
            public static LocalizableResource getInstance() {
                    return  GWT.create(LocalizableResource.class);
            }
        }
   String lblName_text_1();
 }

use这个instance得到一个按钮文本

String buttonText = LocalizableResource.Util.getInstance().lblName_text_1();
Button b = new Button(buttonText); 

in java we can not Instantiates an interface then

GWT是如何做到这一点的。我对延迟绑定和GWT没有太多想法。

这就是GWT的美妙之处,也是它管理多个客户端的方式之一,这也是GWT框架的核心优势。

http://www.gwtproject.org/doc/latest/DevGuideCodingBasicsDeferred.html

延迟绑定是GWT编译器的一个特性,它通过在编译时生成许多版本的代码来工作,其中只有一个版本需要在运行时引导期间由特定的客户端加载。每个版本都是在每个浏览器的基础上生成的,以及应用程序定义或使用的任何其他轴。例如,如果您要使用GWT的国际化模块使您的应用程序国际化,GWT编译器将根据浏览器环境生成各种版本的应用程序,例如"英语版Firefox"、"法语版Firefox"one_answers"英语版Internet Explorer"等,部署的JavaScript代码比手工编码的JavaScript更紧凑,下载速度更快,只包含特定浏览器环境所需的代码和资源。

一个标记接口,便于区分区域设置、编译时使用从属性文件提供的常量值的绑定。使用create(class)来"实例化"一个扩展常量的接口返回自动生成的子类的实例使用基于选择的属性文件中的值实现场所更多信息

最新更新