AbstractResourceBundleProvider — 리소스 번들 제공자 지원 추상 클래스

AbstractResourceBundleProvider — 리소스 번들 제공자 지원 추상 클래스

ResourceBundleProvider의 프로바이더 구현 클래스를 위한 기본 지원을 제공하는 추상 클래스예요. 리소스 번들 프로바이더를 모듈로 구성할 때 사용돼요.

출처: Java API Reference

본문

public abstract class AbstractResourceBundleProvider implements ResourceBundleProvider

리소스 번들은 하나 이상의 명명된 모듈, 즉 서비스 프로바이더 모듈(service provider module) 에 패키징될 수 있어요. 리소스 번들의 소비자는 ResourceBundle.getBundle(String)을 호출하는 쪽이에요.

com.example.app.MyResources 리소스 번들을 다른 모듈에서 로드하려면 com.example.app.spi.MyResourcesProvider라는 서비스 인터페이스를 정의하고, 서비스 프로바이더 모듈이 그 구현 클래스를 제공해야 해요.

import com.example.app.spi.MyResourcesProvider;
class MyResourcesProviderImpl extends AbstractResourceBundleProvider
    implements MyResourcesProvider
{
    public MyResourcesProviderImpl() {
        super("java.properties");
    }
    protected String toBundleName(String baseName, Locale locale) {
        return "p." + locale.getLanguage() + "." + baseName;
    }

    public ResourceBundle getBundle(String baseName, Locale locale) {
        if (locale.equals(Locale.FRENCH)) {
             return super.getBundle(baseName, locale);
        }
        return null;
    }
}

생성자

  • AbstractResourceBundleProvider() — "java.properties" 형식으로 생성해요.
  • AbstractResourceBundleProvider(String... formats) — 지정된 formats로 생성해요.

주요 메서드

  • getBundle(String baseName, Locale locale) — 주어진 baseNamelocale에 대한 ResourceBundle을 반환해요.

  • toBundleName(String baseName, Locale locale) — 이 프로바이더가 제공하는 번들 이름을 반환해요.

  • 도입 시점(Since): 9

더 알아보기 (Learn more)