【问题标题】:GWT Extending the Constants InterfaceGWT 扩展常量接口
【发布时间】:2012-02-12 07:34:27
【问题描述】:

我正在使用 GWT 的常量接口。我有一个实例类类,它使用 GWT.create(Class) 工具创建 MyConstants 的 Java 实例,然后保存它以供其他使用。

public class LocaleMsgReader {

    private static LocaleMsgReader INSTANCE = new LocaleMsgReader();
    private static ErrorMessages errorMessages;

    private LocaleMsgReader () {

    }

    public void init (){
        errorMessages =  (ErrorMessages) GWT.create(ErrorMessages.class);
    }

    public ErrorMessages getErrorMessages() {
        return errorMessages;
    }

    public static LocaleMsgReader getInstance() {
        return INSTANCE;
    }
}

在 init 方法上它创建了 java 实例,但是当我调用方法 getErrorMessages() 时,我得到了 null。 为什么?

【问题讨论】:

  • 你确定你没有在调用 init 之前调用它吗?为什么不把init中的代码放到构造函数中呢?
  • 请提供ErrorMessages的邮政编码。

标签: gwt internationalization constants


【解决方案1】:

您正在为 LocalMsgReader 创建一个单例实例,因此通过删除静态使 errorMessages 成为实例变量而不是类变量,并在构造函数中实例化它。

public class LocaleMsgReader {

    private static LocaleMsgReader INSTANCE = new LocaleMsgReader();
    private ErrorMessages errorMessages;

    private LocaleMsgReader () {
        this.errorMessages =  (ErrorMessages) GWT.create(ErrorMessages.class);
    }

    public ErrorMessages getErrorMessages() {
        return errorMessages;
    }

    public static LocaleMsgReader getInstance() {
        return INSTANCE;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-15
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多