defaultimplementationsmapper.java
来自「xstream是一个把java object序列化成xml文件的开源库,轻便好用」· Java 代码 · 共 53 行
JAVA
53 行
package com.thoughtworks.xstream.mapper;import com.thoughtworks.xstream.alias.ClassMapper;import java.util.Collections;import java.util.HashMap;import java.util.Map;/** * Mapper that resolves default implementations of classes. For example, mapper.lookupName(ArrayList.class) will return * java.util.List. Calling mapper.defaultImplementationOf(List.class) will return ArrayList. * * @author Joe Walnes */public class DefaultImplementationsMapper extends MapperWrapper { private final Map typeToImpl = Collections.synchronizedMap(new HashMap()); private final Map implToType = Collections.synchronizedMap(new HashMap()); public DefaultImplementationsMapper(ClassMapper wrapped) { super(wrapped); addDefaults(); } protected void addDefaults() { // register primitive types addDefaultImplementation(Boolean.class, boolean.class); addDefaultImplementation(Character.class, char.class); addDefaultImplementation(Integer.class, int.class); addDefaultImplementation(Float.class, float.class); addDefaultImplementation(Double.class, double.class); addDefaultImplementation(Short.class, short.class); addDefaultImplementation(Byte.class, byte.class); addDefaultImplementation(Long.class, long.class); } public void addDefaultImplementation(Class defaultImplementation, Class ofType) { typeToImpl.put(ofType, defaultImplementation); implToType.put(defaultImplementation, ofType); } public String serializedClass(Class type) { Class baseType = (Class) implToType.get(type); return baseType == null ? super.serializedClass(type) : super.serializedClass(baseType); } public Class defaultImplementationOf(Class type) { Class result = (Class) typeToImpl.get(type); return result == null ? super.defaultImplementationOf(type) : result; }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?