我有一个传入的请求队列,并希望能够为不同类型的请求(由其类标识)注册处理程序对象(接口RequestHandler的实例)。存储此地图的最合适(最有效和最快)的方法是什么?
要清除:我搜索存储类和处理程序之间关系的最佳方法。
答案 0 :(得分:1)
我使用过Map<Class, RequestHandler>
并确保各个类型在使用它的方法中匹配。
private final Map<Class, RequestHandler> handlerMap = new HashMap<>();
public <T extends Request> void setHandler(Class<T> tClass, RequestHandler<T> handler) {
handlerMap.put(tClass, handler);
}
public <T extends Request> RequestHandler<T> getHandler(Class<T> tClass) {
return (RequestHandler<T>) handlerMap.get(tClass);
}