我正在寻找一个双向映射,例如,当在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.