不能使用静态变量的方法

时间:2014-09-03 04:12:29

标签: java class oop static

一个类有一个静态变量,但我不能在类之外使用它。

这是代码。我无法使用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);
    }
}

2 个答案:

答案 0 :(得分:1)

由于这是正确的答案,我会在此处说明:您还必须将public关键字添加到班级HashCache。在包之外使用的所有类/方法等必须是public或者它们是不可访问的。

答案 1 :(得分:0)

HashCache类应该被声明为public,并且通常每当我们遇到无法访问一段代码的问题时,它主要是由于访问修饰符。