2012-02-12 141 views
-1

我使用GWT的常量接口。我有一个实例类,创造使用GWT.create(类)设施MyConstants的Java实例,然后按住它,对于使用其他。GWT扩展常量接口

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(),我得到空。 为什么?

+0

您确定在调用init之前没有调用它吗?你为什么不把init的代码放入构造函数中? – Strelok 2012-02-12 09:42:44

+0

我想 - 没有工作ErrorMessages的 – 2012-02-12 10:54:29

+0

邮编请。 – Strelok 2012-02-12 12:33:18

回答

2

你正在做一个单实例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; 
    } 
}