我有以下界面:
public interface IGenericCache<K, V> {
void put(K key, V value);
V get(K key);
}
然后我想創建一個將CacheKey物件作為輸入和Map<String, List<String>>物件作為輸出的具體類。一個概念性的例子如下:
public class LocalCache<CacheKey, Map<String, List<String>>> implements IGenericCache<CacheKey, Map<String, List<String>>> {
@Override
public void put(CacheKey key, Map<String, List<String>> value) {
// TODO
}
@Override
public Map<String, List<String>> get(CacheKey key) {
return null;
}
}
哪里CacheKey像:
@Data // lombok annotation
public class CacheKey {
private final String attr1;
private final String attr2;
}
通過使用上面示例中的實作,我從 IDE 中看到了紅色波浪線。但是我找不到正確的格式來匹配<K, V>介面中的泛型。
任何擅長Java的人都可以糾正我嗎?先感謝您!
uj5u.com熱心網友回復:
通過放置<>在您定義的類的名稱之后,您就是在宣告要用作泛型的標記。但你不想那樣,你只想填充現有的泛型型別引數。
所以只需省略第一對<>:
public class LocalCache implements IGenericCache<CacheKey, Map<String, List<String>>>
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/377917.html
上一篇:我如何重置物件回圈“計數器”?
