public class StateCacheManager {
public static StateCacheManager mInstance;
}
我的问题是可以在没有对象的情况下调用变量mInstance
吗?如果没有那么上述陈述的意义是什么?
答案 0 :(得分:0)
static
关键字标识可在不构造实例的情况下访问的类的元素。您可以使用类名作为限定符来访问它们。
在这种情况下,您可以撰写StateCacheManager.mInstance
答案 1 :(得分:0)
mInstance
是类StateCacheManager
的对象。这个类只有一个对象。
下面应该有getInstance
方法初始化mInstance
。
public class StateCacheManager {
public static StateCacheManager mInstance;
public StateCacheManager getInstance(){
if(mInstance == null){
mInstance = new StateCacheManager();
}
return mInstance;
}
}
这就是你使用它的方式,
StateCacheManager object = StateCacheManager.getInstance();
此类使用名为Singleton Pattern的模式。
答案 2 :(得分:0)
如果使用static
修改某个(方法,字段,内部类等),可以使用其名称访问它,后缀为ClassName.
。
因此可以像这样访问您的mInstance
变量:
StateCacheManager.mInstance
正如您所看到的,我没有创建任何对象来访问它,因此您的第一个问题的答案是“是”。
但是,你应该制作mInstance
变量private
并添加一个getter:
public static StateCacheManager mInstance = new StateCacheManager();
public StateCacheManager getInstance() { return mInstance; }
这是为了防止您的代码的其他用户或困了您,意外地将mInstance
设置为您不想要的其他内容。
这称为 Singleton Pattern 。当你只想要一个类的一个实例存在时使用它。