AbstractResourceBundleProvider — 리소스 번들 제공자 지원 추상 클래스
AbstractResourceBundleProvider — 리소스 번들 제공자 지원 추상 클래스
ResourceBundleProvider의 프로바이더 구현 클래스를 위한 기본 지원을 제공하는 추상 클래스예요. 리소스 번들 프로바이더를 모듈로 구성할 때 사용돼요.
본문
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)— 주어진baseName과locale에 대한ResourceBundle을 반환해요. -
toBundleName(String baseName, Locale locale)— 이 프로바이더가 제공하는 번들 이름을 반환해요. -
도입 시점(Since): 9