装箱原始类型的方法

Method to box primitive type

这里是 table 基本类型及其等效包装器 class。

Primitive type  Wrapper class
==============  =============
 boolean        Boolean
 byte           Byte
 char           Character
 float          Float
 int            Integer
 long           Long
 short          Short
 double         Double

我想创建一个方法,将任何给定的原始变量转换为适当的 class。我试过类似下面的方法,但这显然不起作用。任何帮助将不胜感激:

public static <T> T forceBox(T t) {
  switch (T) {
    case boolean.class : return new Boolean(t);
    case int.class     : return new Integer(t);
    // etc
  }
}

调用方代码如下所示:

int x = 3;
System.out.println("x wrapper type: " + forceBox(x).getClass());

虽然在大多数情况下这完全没有必要,但只需使用

public static <T> T forceBox(T t) { // compiler will add the conversion at the call site
    return t; 
}

虽然你也可以只使用

Object o = <some primitive>;

转换已在需要时作为 boxing process 的一部分完成。