我从配置加载程序类访问静态字段'cache'的方式有问题吗?仅供参考,CacheEngine
是为memcached实现缓存客户端的接口。
public class Test {
...
getCache(){
...
try{
cacheData = ConfigLoader.cache.get(key); // Accessing the static 'cache' memeber returns Null Pointer Exception
...
}
}
}
//ConfigLoader Class
public class ConfigLoader{
public static CacheEngine cache;
...
}
答案 0 :(得分:5)
这是糟糕的设计,但你访问它的方式是正确的。您的问题是,cache
未初始化。你需要在某个地方这样做:
public static CacheEngine cache = new CacheEngine(...);
答案 1 :(得分:2)
我想你可能没有初步化static CacherEngine cache;
要初始化,请在static
:
ConfigLoader class
构造函数中添加以下代码
static{
cache=new CacheEngine(...);}
这是另一种方法,但不建议这样做。在声明中添加:
public static CacheEngine cache=new CacheEngine
答案 2 :(得分:1)
在访问缓存之前执行
if (cache==null) cache = new CacheEngine(...);
在访问它之前初始化它。另外,在一个好的OOP设计中,你可以创建一个静态init方法。