我正在使用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。 为什么呢?
答案 0 :(得分: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;
}
}