我有一個類將包含幾個不同對象的不同解析器實現。儘管我能夠在沒有任何警告的情況下存儲解析器實現,但從映射中獲取解析器會警告未經檢查的轉換異常。下面是一個簡化的摘錄:重新設計未經檢查的強制轉換警告
private Map<Class<?>, Parser<?>> parsers = new HashMap<>();
public <T> void addParser(Class<T> type, Parser<T> parser) {
parsers.put(type, parser);
}
private <T> Parser<T> parserFor(Class<T> type) {
// Compiler complains about unchecked cast below
return (Parser<T>) parsers.get(type);
}
是否有另一種方法來實現類似的邏輯,而不會導致未經檢查的轉換警告?
沒有沒有真正的方法來做到這一點,沒有未經檢查的演員。只要你不做任何有趣的事情就沒關係。 – Radiodef 2015-02-10 04:27:39