0

我想要一个将类映射到类的函数,例如 int.class -> Integer。

4

2 回答 2

4

这在原版 JDK 中没有专门提供,但如果您不想自己编写,Guava提供Primitives.wrap(Class)了采用原始类型并返回相应的包装器类型。

于 2013-02-11T20:26:52.153 回答
1

对于整数:

int.class or the equivalent: Integer.TYPE;

其他原始类型相同

double.class or Double.TYPE
float.class or Float.TYPE
char.class or Character.TYPE
long.class or Long.TYPE
boolean.class Boolean.TYPE

按如下方式使用它:

Class intClass = int.class;

这是一个代表原始类型 int 的类。

有了这些信息,您只需编写自己的映射器:(您不想为 8 行代码包含外部库)

public Class getClassForPrimitiveType(Class clazz) {
  if (clazz == int.class) return Integer.class;
  if (clazz == float.class) return Float.class;
  // TODO other primitives
}
于 2013-02-11T20:25:22.297 回答