内置(或流行的第三方库)方式在基元和相应的引用类型("wrapper")之间映射?



我正在寻找一个双向映射,例如,当在java.lang.Boolean.TYPE上进行查找时产生java.lang.Boolean.class,反之亦然。基本上,一个原始的⇆包装器地图。

构造这样的地图似乎很容易,但我想知道在一些流行的、常见的地方是否已经有了这样的地图(本例使用Google Guava):

import com.google.common.collect.BiMap;
import com.google.common.collect.ImmutableBiMap;
public static final BiMap<Class<?>, Class<?>> PRIMITIVE_TO_OBJECT = ImmutableBiMap.<Class<?>, Class<?>>builder()
    .put(  Boolean.TYPE,   Boolean.class)
    .put(     Byte.TYPE,      Byte.class)
    .put(Character.TYPE, Character.class)
    .put(   Double.TYPE,    Double.class)
    .put(    Float.TYPE,     Float.class)
    .put(  Integer.TYPE,   Integer.class)
    .put(     Long.TYPE,      Long.class)
    .put(    Short.TYPE,     Short.class)
    .build();

Apache Commons Lang项目中的org.apache.commons.lang3.ClassUtils:

static Class<?> primitiveToWrapper(Class<?> cls)
    Converts the specified primitive Class object 
    to its corresponding wrapper Class object.
static Class<?> wrapperToPrimitive(Class<?> cls)
    Converts the specified wrapper class to its 
    corresponding primitive class.

相关内容

  • 没有找到相关文章