NumberFormatProvider (Java SE 26 & JDK 26)
Description: declaration: module: java.base, package: java.text.spi, class: NumberFormatProvider
Keywords: java.text.spi.NumberFormatProvider class

# 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
  Modifier
  Constructor
  Description
  `protected`
  `NumberFormatProvider()`
  Sole constructor.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `NumberFormat`
  `getCompactNumberInstance(Locale locale, NumberFormat.Style formatStyle)`
  Returns a new `NumberFormat` instance which formats a number in its compact form for the specified `locale` and `formatStyle`.
  `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 LocaleServiceProvider

  `getAvailableLocales, isSupportedLocale`
  Modifier and Type
  Method
  Description
  `abstract Locale[]`
  `getAvailableLocales()`
  Returns an array of all locales for which this locale service provider can provide localized objects or names.
  `boolean`
  `isSupportedLocale(Locale locale)`
  Returns `true` if the given `locale` is supported by this locale service provider.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Constructor Details

  - ### NumberFormatProvider

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

- ## Method Details

  - ### 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)`

  - ### getCompactNumberInstance

    public NumberFormat getCompactNumberInstance(Locale locale, NumberFormat.Style formatStyle)
    Returns a new `NumberFormat` instance which formats a number in its compact form for the specified `locale` and `formatStyle`.
    Implementation Requirements:
      The default implementation of this method throws `UnsupportedOperationException`. Overriding the implementation of this method returns the compact number formatter instance of the given `locale` with specified `formatStyle`.
    Parameters:
      `locale` - the desired locale
      `formatStyle` - the style for formatting a number
    Returns:
      a compact number formatter
    Throws:
      `NullPointerException` - if `locale` or `formatStyle` is `null`
      `IllegalArgumentException` - if `locale` is not one of the locales returned from `getAvailableLocales()`.
      `UnsupportedOperationException` - if the implementation does not support this method
    Since:
      12
    See Also:
      - `NumberFormat.getCompactNumberInstance(Locale, NumberFormat.Style)`