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>());
}
在上面的代码中,我必须使用泛型进行类型安全检查,但在实现的类中出现错误。
答案 0 :(得分: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
}
答案 1 :(得分:0)
具有双重检查和泛型参数的Singleton可以处理如下, 其中Cache Impl是我的Cache实现
public static CacheImpl<?> getInstance(Class<?> ofClass) {
if (instance == null) {
synchronized (CacheImpl.class) {
instance = new CacheImpl<Object>(ofClass);
}
}
return instance;
}