Java:转换基元类

2022-09-02 23:28:29

在Java中是否有将基元类对象转换为对象类对象的简单方法?给定一个类 Class cl,我想将其转换为没有基元的类。例如。

Class<?> cl = int.class;

...
if (cl.isPrimitive()) {
  cl = Object of primitive
}
...

cl == 整数.class

我想要一个对所有基元类型都这样做的方法。显然,我可以遍历所有基元类型,但我认为有人可能知道更好的解决方案。

干杯,马克斯


答案 1

希望我理解正确。基本上,您希望从基元类类型映射到它们的包装器方法。

在某些 Utility 类中实现的静态实用程序方法将是一个优雅的解决方案,因为您将像这样使用转换:

Class<?> wrapper = convertToWrapper(int.class);

或者,声明并填充静态映射:

public final static Map<Class<?>, Class<?>> map = new HashMap<Class<?>, Class<?>>();
static {
    map.put(boolean.class, Boolean.class);
    map.put(byte.class, Byte.class);
    map.put(short.class, Short.class);
    map.put(char.class, Character.class);
    map.put(int.class, Integer.class);
    map.put(long.class, Long.class);
    map.put(float.class, Float.class);
    map.put(double.class, Double.class);
}

private Class<?> clazz = map.get(int.class);  // usage

答案 2

org.apache.commons.lang.ClassUtils.primitiveToWrapper(Class)