ResourceBundle.getBundle(String, Locale, ClassLoader) in Java

ResourceBundle.getBundle(String, Locale, ClassLoader): This method is available in java.util.ResourceBundle class of Java.

Syntax:

ResourceBundle java.util.ResourceBundle.getBundle(String baseName, Locale locale, ClassLoader loader)

This method takes three arguments. This method gets a resource bundle using the specified base name, locale, and classloader.

Parameters: Three parameters are required for this method.

baseName: the base name of the resource bundle, a fully qualified class name.

locale: the locale for which a resource bundle is desired.

loader: the class loader from which to load the resource bundle.

Returns: a resource bundle for the given base name and locale.

Throws:

1. NullPointerException - if baseName, locale, or loader is null.

2. MissingResourceException - if no resource bundle for the specified base name can be found.

Approach 1 When no exception

Java

import java.util.Locale;
import java.util.ResourceBundle;

public class ResourceBundlegetBundle5 {
    public static void main(String[] args) {

        String baseName = "Hello";
        ClassLoader cl = ClassLoader.getSystemClassLoader();

        System.out.println(ResourceBundle.getBundle(baseName,
Locale.US, cl).getString(baseName));
    }
}

Output:

Hello Java Program


Approach 2: NullPointerException 

Java

import java.util.Locale;
import java.util.ResourceBundle;

public class ResourceBundlegetBundle5 {
    public static void main(String[] args) {

        String baseName = null;
        ClassLoader cl = ClassLoader.getSystemClassLoader();

        System.out.println(ResourceBundle.getBundle(baseName,
Locale.US, cl).getString(baseName));
    }
}

Output:

Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.hashCode()" because "this.name" is null at java.base/java.util.ResourceBundle$CacheKey.hashCode(ResourceBundle.java:744) at java.base/java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936) at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1629) at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1593) at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:1284)



Approach 3: MissingResourceException 

Java

import java.util.Locale;
import java.util.ResourceBundle;

public class ResourceBundlegetBundle5 {
    public static void main(String[] args) {

        String baseName = "hello";
        ClassLoader cl =
ClassLoader.getPlatformClassLoader();

        System.out.println(ResourceBundle.getBundle(baseName,
Locale.US, cl));
    }
}

Output:

Exception in thread "main" java.util.MissingResourceException: Can't find bundle for base name hello, locale en_US at java.base/java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:2055) at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1689) at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1593) at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:1284)


No comments:

Post a Comment