code: private Optional<NumberFormat> createFormatter(final Optional<XlsNumberConverter> convertAnno) {
          
          if(!convertAnno.isPresent()) {
              return Optional.empty();
          }
          
          final Optional<String> javaPattern = getJavaPattern(convertAnno);
          final Locale locale = Utils.getLocale(convertAnno.get().locale());
          final DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance(locale);
          final Optional<Currency> currency = convertAnno.get().currency().isEmpty() ? Optional.empty()
                  : Optional.of(Currency.getInstance(convertAnno.get().currency()));
          
          if(!javaPattern.isPresent()) {
              if(!convertAnno.get().currency().isEmpty()) {
                  // 通貨の場合
                  DecimalFormat formatter = (DecimalFormat)NumberFormat.getCurrencyInstance(locale);
                  formatter.setParseBigDecimal(true);
                  formatter.setDecimalFormatSymbols(symbols);
                  currency.ifPresent(c -> formatter.setCurrency(c));
                  
                  return Optional.of(formatter);
                  
              } else {
                  return Optional.empty();
              }
          }
          
          final DecimalFormat formatter = new DecimalFormat(javaPattern.get(), symbols);
          
          formatter.setRoundingMode(RoundingMode.HALF_UP);
          formatter.setParseBigDecimal(true);
          currency.ifPresent(c -> formatter.setCurrency(c));
          
          return Optional.of(formatter);
          
      }
docs: アノテーションから数値のフォーマッタを取得する。
  @param convertAnno 引数がnull(アノテーションが設定されていない場合)は、nullを返す。
  @return アノテーションに書式が設定されていない場合は空を返す。