如何在客户端界面中实现类型安全



我有一个缓存api,它使用数组作为缓存的存储。如何确保界面中的类型安全?我对 java 中的概念不太熟悉,所以如果您能包含详细的答案,我将不胜感激。

客户端接口

public class ClientCacheServiceImpl extensions InternalCacheServiceImpl {

public ClientCacheServiceImpl(int sets, int entries, String algorithm) {
    super(sets, entries, algorithm);
}

内部接口

public class InternalCacheServiceImpl 实现了 InternalCacheService {

private final int numberOfSets;
private final int numberOfLines;
public final CacheElement[] cacheArray;
public final String algorithm;
public InternalCacheServiceImpl(int numberOfSets, int numberOfLines, String algorithm) {
}
public final Object get(Object key) {

}

公共接口 InternalCacheService {

public Object get(final Object key);
public void  put(final Object key, final Object value);
public int size();
public void clear();

}

公共类 CacheElement {

public int tag;
public Object data;
public boolean isEmpty;
public long timestamp;

}

应引入泛型参数类型 T,如下所示:

public interface InternalCacheService<T> {
      public T get(final T key);
      public void  put(final T key, final T value);
      public int size();
      public void clear();
    }

为整数类型键实现类,值如下所示:

 public class InternalCacheServiceImpl implements InternalCacheService<Integer> {
    private final int numberOfSets;
    private final int numberOfLines;
    public final CacheElement[] cacheArray;
    public final String algorithm;
    public InternalCacheServiceImpl(int numberOfSets, int numberOfLines, String algorithm) {
    }
    public final Integer get(Object key) {
       //find the cached element by key and return it. Lets say it is the ith element
       return (Integer) cacheArray[i].data;
    }
}

最新更新