框原始类型的方法

时间:2015-02-27 19:22:28

标签: java boxing

这是一个基本类型及其等效包装类的表。

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

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

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());

2 个答案:

答案 0 :(得分:2)

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

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

虽然你也可以使用

Object o = <some primitive>;

答案 1 :(得分:0)

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