ListResourceBundle — 리스트 기반 리소스 번들
ListResourceBundle — 리스트 기반 리소스 번들
ListResourceBundle은 로케일 리소스를 편리하고 사용하기 쉬운 리스트로 관리하는 ResourceBundle의 추상 서브클래스예요. 리소스 번들 전반에 대한 내용은 ResourceBundle을 참고해요.
본문
public abstract class ListResourceBundle extends ResourceBundle
서브클래스는 getContents를 오버라이드해 배열을 제공해야 해요. 배열의 각 항목은 객체 쌍이며, 첫 요소는 키(String이어야 함), 두 번째 요소는 그 키와 연관된 값이에요. 키는 대소문자를 구분해요.
예를 들어 기본 이름이 "MyResources"인 번들 패밀리의 구성원을 만들 수 있어요. MyResources는 패밀리의 기본 구성원, MyResources_fr은 프랑스어 구성원이에요.
public class MyResources extends ListResourceBundle {
protected Object[][] getContents() {
return new Object[][] {
{"s1", "The disk \"{1}\" contains {0}."}, // MessageFormat pattern
{"s2", "1"}, // {0}의 위치
{"s3", "My Disk"}, // 샘플 디스크 이름
{"s8", new Dimension(1,5)} // 문자열이 아닌 실제 객체
};
}
}
이렇게 값은 문자열뿐 아니라 실제 객체일 수도 있어요. 키는 프로그램에서 번들에서 객체를 가져올 때 사용하는 키와 같기만 하면 자유롭게 정할 수 있어요.
생성자와 메서드
ListResourceBundle()— 유일한 생성자예요(서브클래스 생성자에서 호출).handleGetObject(String key)—ResourceBundle에서 상속된 구현으로 키에 해당하는 값을 반환해요.getKeys()— 이 번들과 부모 번들에 포함된 키들의Enumeration을 반환해요.handleKeySet()— 이 번들에만 포함된 키들의Set을 반환해요.getContents()— 각 항목이 객체 쌍인 배열을 반환하는 추상 메서드로, 서브클래스가 오버라이드해요.