code: @Override
      public T create() {
          if (currency == null) {
              throw new MonetaryException("Cannot create an instance of '"+this.getAmountType().getName()+"': missing currency.");
          }
          if (number == null) {
              throw new MonetaryException("Cannot create an instance of '"+this.getAmountType().getName()+"': missing number.");
          }
          if (monetaryContext == null) {
              throw new MonetaryException("Cannot create an instance of '"+this.getAmountType().getName()+"': missing context.");
          }
          return create(number, currency, monetaryContext);
      }
docs: Creates a new instance of {@link MonetaryAmount}, using the default {@link MonetaryContext}.
  
  @return a {@code MonetaryAmount} combining the numeric value and currency unit.
  @throws ArithmeticException If the number exceeds the capabilities of the default {@link MonetaryContext}
  used.