2012-02-12 143 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; 
    } 
}