Module java.base
Package java.text.spi

## Class NumberFormatProvider

- java.lang.Object
- - java.util.spi.LocaleServiceProvider
  - - java.text.spi.NumberFormatProvider

    public abstract class NumberFormatProvider
    extends LocaleServiceProvider

An abstract class for service providers that provide concrete implementations of the `NumberFormat` class.

Since:
  1.6

### Constructor Summary

Constructors
`protected` `NumberFormatProvider()` Sole constructor.

### Method Summary

All Methods Instance Methods Abstract Methods
`abstract NumberFormat` `getCurrencyInstance​(Locale locale)` Returns a new `NumberFormat` instance which formats monetary values for the specified locale.
`abstract NumberFormat` `getIntegerInstance​(Locale locale)` Returns a new `NumberFormat` instance which formats integer values for the specified locale.
`abstract NumberFormat` `getNumberInstance​(Locale locale)` Returns a new general-purpose `NumberFormat` instance for the specified locale.
`abstract NumberFormat` `getPercentInstance​(Locale locale)` Returns a new `NumberFormat` instance which formats percentage values for the specified locale.

### Methods declared in class java.util.spi.LocaleServiceProvider

`getAvailableLocales, isSupportedLocale`

### Methods declared in class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### NumberFormatProvider

    protected NumberFormatProvider()

Sole constructor. (For invocation by subclass constructors, typically implicit.)

### Method Detail

#### getCurrencyInstance

    public abstract NumberFormat getCurrencyInstance​(Locale locale)

Returns a new `NumberFormat` instance which formats monetary values for the specified locale.

Parameters:
  `locale` - the desired locale.
Returns:
  a currency formatter
Throws:
  `NullPointerException` - if `locale` is null
  `IllegalArgumentException` - if `locale` isn't one of the locales returned from `getAvailableLocales()`.
See Also:
  `NumberFormat.getCurrencyInstance(java.util.Locale)`

#### getIntegerInstance

    public abstract NumberFormat getIntegerInstance​(Locale locale)

Returns a new `NumberFormat` instance which formats integer values for the specified locale. The returned number format is configured to round floating point numbers to the nearest integer using half-even rounding (see `HALF_EVEN`) for formatting, and to parse only the integer part of an input string (see `isParseIntegerOnly`).

Parameters:
  `locale` - the desired locale
Returns:
  a number format for integer values
Throws:
  `NullPointerException` - if `locale` is null
  `IllegalArgumentException` - if `locale` isn't one of the locales returned from `getAvailableLocales()`.
See Also:
  `NumberFormat.getIntegerInstance(java.util.Locale)`

#### getNumberInstance

    public abstract NumberFormat getNumberInstance​(Locale locale)

Returns a new general-purpose `NumberFormat` instance for the specified locale.

Parameters:
  `locale` - the desired locale
Returns:
  a general-purpose number formatter
Throws:
  `NullPointerException` - if `locale` is null
  `IllegalArgumentException` - if `locale` isn't one of the locales returned from `getAvailableLocales()`.
See Also:
  `NumberFormat.getNumberInstance(java.util.Locale)`

#### getPercentInstance

    public abstract NumberFormat getPercentInstance​(Locale locale)

Returns a new `NumberFormat` instance which formats percentage values for the specified locale.

Parameters:
  `locale` - the desired locale
Returns:
  a percent formatter
Throws:
  `NullPointerException` - if `locale` is null
  `IllegalArgumentException` - if `locale` isn't one of the locales returned from `getAvailableLocales()`.
See Also:
  `NumberFormat.getPercentInstance(java.util.Locale)`