我有各种扩展 baseItem 的项目。对于每种类型,我都有一个特殊的处理程序类。
我使用处理程序的映射,使用项目类名。所以我的处理方法是这样的:
private boolean handle(BaseItem item) {
BaseItemHandler bih = mapOfHandlers.get(item.getClass().getSimpleName());
return bih.handleItem(item);
}
并且地图的类型是:
map<string,BaseItemHandler> mapOfHandlers;
但我(显然)收到“未经检查的呼叫”警告。正确的做法是什么
编辑:
项目是
public interface BaseItem{}
BaseItemHandler 是:
public interface BaseItemHandler<T extends BaseItem> {
public boolean handleItem(T item);
}