如何使用泛型声明一个映射变量其中X 的类作为键X 的相关序列化器作为值例如一个可以包含以下内容的 MapK、VBigDecimal.class、new BigDecimalSerializer()LocalDate.class、new LocalDateSerializer()Date.class、new DateSerializer()publicstaticvoidmain(String[]args){// 使用示例SerializerRegistryregistrynewSerializerRegistry();registry.registerSerializer(BigDecimal.class,newBigDecimalSerializer());registry.registerSerializer(LocalDate.class,newLocalDateSerializer());registry.registerSerializer(Date.class,newDateSerializer());// 获取并使用SerializerBigDecimalbdSerializerregistry.getSerializer(BigDecimal.class);SerializerLocalDatelcSerializerregistry.getSerializer(LocalDate.class);StringresultbdSerializer.serialize(newBigDecimal(123.45));Stringresult1lcSerializer.serialize(LocalDate.of(2026,1,1));}// 定义序列化器接口publicinterfaceSerializerT{Stringserialize(Tvalue);}// 具体实现publicstaticclassBigDecimalSerializerimplementsSerializerBigDecimal{OverridepublicStringserialize(BigDecimalvalue){returnvalue.toString();}}publicstaticclassLocalDateSerializerimplementsSerializerLocalDate{OverridepublicStringserialize(LocalDatevalue){returnvalue.toString();}}publicstaticclassDateSerializerimplementsSerializerDate{OverridepublicStringserialize(Datevalue){returnvalue.toString();}}// 注册表publicstaticclassSerializerRegistry{privatefinalMapClass?,Serializer?serializersnewHashMap();publicTvoidregisterSerializer(ClassTtype,SerializerTserializer){serializers.put(type,serializer);}SuppressWarnings(unchecked)publicTSerializerTgetSerializer(ClassTtype){return(SerializerT)serializers.get(type);}}