ResourceBundle

public abstract class ResourceBundle extends Object
Known Direct Subclasses

ResourceBundle is an abstract class which is the superclass of classes which provide Locale-specific resources. A bundle contains a number of named resources, where the names are Strings. A bundle may have a parent bundle, and when a resource is not found in a bundle, the parent bundle is searched for the resource. If the fallback mechanism reaches the base bundle and still can't find the resource it throws a MissingResourceException.

  • All bundles for the same group of resources share a common base bundle. This base bundle acts as the root and is the last fallback in case none of its children was able to respond to a request.
  • The first level contains changes between different languages. Only the differences between a language and the language of the base bundle need to be handled by a language-specific ResourceBundle.
  • The second level contains changes between different countries that use the same language. Only the differences between a country and the country of the language bundle need to be handled by a country-specific ResourceBundle.
  • The third level contains changes that don't have a geographic reason (e.g. changes that where made at some point in time like PREEURO where the currency of come countries changed. The country bundle would return the current currency (Euro) and the PREEURO variant bundle would return the old currency (e.g. DM for Germany).
Examples
  • BaseName (base bundle)
  • BaseName_de (german language bundle)
  • BaseName_fr (french language bundle)
  • BaseName_de_DE (bundle with Germany specific resources in german)
  • BaseName_de_CH (bundle with Switzerland specific resources in german)
  • BaseName_fr_CH (bundle with Switzerland specific resources in french)
  • BaseName_de_DE_PREEURO (bundle with Germany specific resources in german of the time before the Euro)
  • BaseName_fr_FR_PREEURO (bundle with France specific resources in french of the time before the Euro)
It's also possible to create variants for languages or countries. This can be done by just skipping the country or language abbreviation: BaseName_us__POSIX or BaseName__DE_PREEURO. But it's not allowed to circumvent both language and country: BaseName___VARIANT is illegal.

Nested Class Summary

class ResourceBundle.Control ResourceBundle.Control is a static utility class defines ResourceBundle load access methods, its default access order is as the same as before. 

Field Summary

protected ResourceBundle parent The parent of this ResourceBundle that is used if this bundle doesn't include the requested resource.

Public Constructor Summary

ResourceBundle()
Constructs a new instance of this class.

Public Method Summary

static void
static void
boolean
static ResourceBundle
getBundle(String baseName, Locale targetLocale, ResourceBundle.Control control)
Finds the named resource bundle for the specified base name and control.
static ResourceBundle
getBundle(String bundleName, Locale locale)
Finds the named ResourceBundle for the specified Locale and the caller ClassLoader.
static ResourceBundle
getBundle(String bundleName)
Finds the named resource bundle for the default Locale and the caller's ClassLoader.
static ResourceBundle
getBundle(String baseName, Locale targetLocale, ClassLoader loader, ResourceBundle.Control control)
Finds the named resource bundle for the specified base name and control.
static ResourceBundle
getBundle(String bundleName, Locale locale, ClassLoader loader)
Finds the named resource bundle for the specified Locale and ClassLoader.
static ResourceBundle
getBundle(String baseName, ResourceBundle.Control control)
Finds the named resource bundle for the specified base name and control.
abstract Enumeration<String>
getKeys()
Returns the names of the resources contained in this ResourceBundle.
Locale
getLocale()
Gets the Locale of this ResourceBundle.
final Object
getObject(String key)
Returns the named resource from this ResourceBundle.
final String
getString(String key)
Returns the named string resource from this ResourceBundle.
final String[]
getStringArray(String key)
Returns the named resource from this ResourceBundle.
Set<String>
keySet()

Protected Method Summary

abstract Object
handleGetObject(String key)
Returns the named resource from this ResourceBundle, or null if the resource is not found.
Set<String>
void
setParent(ResourceBundle bundle)
Sets the parent resource bundle of this ResourceBundle.

Inherited Method Summary