package com.cwa.util.automsg.codec; import java.util.HashMap; import java.util.Map; /** * Codec仓库,缓存Codec实例以避免每次创建。 */ public class ReflectiveCodecRepository { private static final Map<Class<?>, ReflectiveCodec> codecMap; static { codecMap = new HashMap<Class<?>, ReflectiveCodec>(); } public static ReflectiveCodec getCodec(Class<?> msgClass) { if (!codecMap.containsKey(msgClass)) { synchronized (codecMap) { if (!codecMap.containsKey(msgClass)) { ReflectiveCodec codec = ReflectiveCodecBuilder.build(msgClass); codecMap.put(msgClass, codec); } } } return codecMap.get(msgClass); } }