0
public interface Cache<T>{
    public void put(String key,T value);
    public Object get(Object key);
}

public class CacheImpl<T> implements Cache {
    private static Object monitor = new Object();
    private static CacheImpl instance;
    private Map<String, T> cache = Collections.synchronizedMap(new HashMap<String, T>());

}

在上面的代码中,我必须使用泛型进行类型安全检查,但在实现的类中出现错误。

4

2 回答 2

3

您的实现类尚未实现接口中声明的任何方法!

接口是一种契约,实现类承诺支持接口中的方法。您需要为接口中声明的方法添加实现。

您还需要在implements子句中包含泛型类型参数:

public class CacheImpl<T> implements Cache<T> {

    public void put(String key,T value) {
      // Method body
    }

    public Object get(Object key){
      // Method body

      return someObject;
    }

    // Other methods
}
于 2013-04-23T22:57:47.180 回答
0

可以处理带有双重检查和泛型参数的单例,见下文,其中 CacheImpl 是我的 Cache 实现

public static CacheImpl<?> getInstance(Class<?> ofClass) {
        if (instance == null) {
            synchronized (CacheImpl.class) {
                instance = new CacheImpl<Object>(ofClass);
            }
        }
        return instance;
    }
于 2013-04-24T20:26:29.187 回答