|  |  | 
 |  |  |     * 在单线程环境中运行 | 
 |  |  |     * 通过协议驱动的类名,得到类单例 | 
 |  |  |     * @param protocolName 协议名称 | 
 |  |  |     * @param protocolVersion 协议版本号 | 
 |  |  |     * @return 驱动 | 
 |  |  |     * @throws Exception 异常 | 
 |  |  |     */ | 
 |  |  |    public static Driver getDriver(String protocolName) throws Exception{ | 
 |  |  |       Driver dri = drivers.get(protocolName); | 
 |  |  |    public static Driver getDriver(String protocolName, short protocolVersion) throws Exception{ | 
 |  |  |       Driver dri = drivers.get(protocolName + protocolVersion) ; | 
 |  |  |       if(dri == null){ | 
 |  |  |          AnnotationDriverVo vo = driverMap.get(protocolName) ; | 
 |  |  |          AnnotationDriverVo vo = driverMap.get(protocolName + protocolVersion) ; | 
 |  |  |          if(vo != null && vo.clazz != null){ | 
 |  |  |             dri = (Driver)vo.clazz.getDeclaredConstructor().newInstance(); | 
 |  |  |             //dri = (Driver)vo.clazz.newInstance() ; | 
 |  |  |             drivers.put(protocolName, dri) ; | 
 |  |  |             drivers.put(protocolName + protocolVersion, dri) ; | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |       return dri ; | 
 |  |  |    } | 
 |  |  |    /** | 
 |  |  |     * 在单线程环境中运行 | 
 |  |  |     * 通过协议驱动的类名,得到类单例 | 
 |  |  |     * @param protocolNameVersion 协议名称和版本号 | 
 |  |  |     * @return 驱动 | 
 |  |  |     * @throws Exception 异常 | 
 |  |  |     */ | 
 |  |  |    public static Driver getDriver(String protocolNameVersion) throws Exception{ | 
 |  |  |       Driver dri = drivers.get(protocolNameVersion) ; | 
 |  |  |       if(dri == null){ | 
 |  |  |          AnnotationDriverVo vo = driverMap.get(protocolNameVersion) ; | 
 |  |  |          if(vo != null && vo.clazz != null){ | 
 |  |  |             dri = (Driver)vo.clazz.getDeclaredConstructor().newInstance(); | 
 |  |  |             drivers.put(protocolNameVersion, dri) ; | 
 |  |  |          } | 
 |  |  |       } | 
 |  |  |       return dri ; | 
 |  |  | 
 |  |  |       return onLineMap; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    protected AnnotationDriverVo getAnnotationDriver(String protocolName, Short protocolVersion){ | 
 |  |  |       return driverMap.get(protocolName + "" + protocolVersion) ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    protected static AnnotationPrefixedDataAvailableVo getAnnotationPrefixedDataAvailable(String protocolName, Short protocolVersion){ | 
 |  |  |       return prefixedDataAvailableMap.get(protocolName + "" + protocolVersion) ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |    protected static AnnotationOnLineVo getAnnotationOnLine(String protocolName, Short protocolVersion){ | 
 |  |  |       return onLineMap.get(protocolName + "" + protocolVersion) ; | 
 |  |  |    } | 
 |  |  |  | 
 |  |  |     /* | 
 |  |  |     public static void main(String[] args){ | 
 |  |  |         HashMap<String, Integer> mp = new HashMap<>() ; |