我有一个传入的请求队列,并希望能够为不同类型的请求(由其类标识)注册处理程序对象(接口RequestHandler的实例)。什么是最合适(最有效,最快速)的地图存储方式?
澄清一下:我在寻找存储类和处理程序之间关系的最佳方法。
最佳答案
我已经使用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);
}