我有一个类将包含几个不同对象的不同解析器实现。尽管我能够在没有任何警告的情况下存储解析器实现,但从映射中获取解析器会警告未经检查的转换异常。下面是一个简化的摘录:重新设计未经检查的强制转换警告
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