code: public TypeName box() {
      if (keyword == null) return this; // Doesn't need boxing.
      if (this == VOID) return BOXED_VOID;
      if (this == BOOLEAN) return BOXED_BOOLEAN;
      if (this == BYTE) return BOXED_BYTE;
      if (this == SHORT) return BOXED_SHORT;
      if (this == INT) return BOXED_INT;
      if (this == LONG) return BOXED_LONG;
      if (this == CHAR) return BOXED_CHAR;
      if (this == FLOAT) return BOXED_FLOAT;
      if (this == DOUBLE) return BOXED_DOUBLE;
      throw new AssertionError(keyword);
    }
docs: Returns a boxed type if this is a primitive type (like {@code Integer} for {@code int}) or
  {@code void}. Returns this type if boxing doesn't apply.