内置(或流行的第三方库)方式来映射原始和相应的引用类型(“包装器”)?

时间:2011-10-03 17:39:59

标签: java reflection types

我正在寻找一个双向地图,例如,在java.lang.Boolean.class上进行查询时生成java.lang.Boolean.TYPE,反之亦然。基本上,原始的⇆wrapper地图。

构建这样的地图似乎很容易,但我想知道是否已经在一些流行的,常见的地方提供了一个(这个例子使用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();

1 个答案:

答案 0 :(得分:2)

org.apache.commons.lang3.ClassUtils中的

Apache Commons Lang project

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.