docs: public static Object negate(Object arg) throws NoSuchMethodException {
          int code = typeCode(arg);
          if (code <= INT) {
              int val = unboxCharOrInt(arg, code);
              return boxToInteger(-val);
          }
          if (code <= LONG) {
              long val = unboxCharOrLong(arg, code);
              return boxToLong(-val);
          }
          if (code <= FLOAT) {
              float val = unboxCharOrFloat(arg, code);
              return boxToFloat(-val);
          }
          if (code <= DOUBLE) {
              double val = unboxCharOrDouble(arg, code);
              return boxToDouble(-val);
          }
          throw new NoSuchMethodException();
      }