一个类有一个静态变量,但我不能在类之外使用它。
这是代码。我无法使用Cache.login.hget("a", "b")
,它说Cannot access hset(...) in com.example.cache.HashCache
Cache.java:
public class Cache {
public static HashCache login;
public Cache(String redisUrl) {
Jedis redis = new Jedis(redisUrl);
Cache.login = new HashCache(redis, "name");
}
}
HashCache.java:
class HashCache {
private Jedis jedis;
private String key;
public HashCache(Jedis jedis, String key) {
this.jedis = jedis;
this.key = key;
}
public String hget(String field) {
return jedis.hget(key, field);
}
public void hset(String field, String value) {
jedis.hset(key, field, value);
}
}
答案 0 :(得分:1)
由于这是正确的答案,我会在此处说明:您还必须将public
关键字添加到班级HashCache
。在包之外使用的所有类/方法等必须是public
或者它们是不可访问的。
答案 1 :(得分:0)
HashCache类应该被声明为public,并且通常每当我们遇到无法访问一段代码的问题时,它主要是由于访问修饰符。