public static Class<?> boxClass(Class<?> z) {
    if (!z.isPrimitive()) return z;
    if (z == int.class) return Integer.class;
    if (z == double.class) return Double.class;
    if (z == boolean.class) return Boolean.class;
    if (z == long.class) return Long.class;
    if (z == short.class) return Short.class;
    if (z == byte.class) return Byte.class;
    throw new CastException("unimplemented primitive type: " + z);
  }