ResourceBundle 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
리소스 번들에는 로캘별 개체가 포함됩니다.
[Android.Runtime.Register("java/util/ResourceBundle", DoNotGenerateAcw=true)]
public abstract class ResourceBundle : Java.Lang.Object
[<Android.Runtime.Register("java/util/ResourceBundle", DoNotGenerateAcw=true)>]
type ResourceBundle = class
inherit Object
- 상속
- 파생
- 특성
설명
리소스 번들에는 로캘별 개체가 포함됩니다. 예를 들어 프로그램에 로캘별 리소스가 String
필요한 경우 프로그램은 현재 사용자의 로캘에 적합한 리소스 번들에서 로드할 수 있습니다. 이러한 방식으로 리소스 번들에서 로캘 관련 정보를 대부분 격리하는 사용자의 로캘과 크게 독립적인 프로그램 코드를 작성할 수 있습니다.
이렇게 하면 UL><LI>를 다른 언어로 쉽게 지역화하거나 번역할 수 있는 프로그램을 작성할 수 있습니다<. <LI>는 나중에 더 많은 로캘 </UL을 지원하기 위해 LI>가 여러 로캘을 한 번에 <쉽게 수정할 수 있습니다.>
리소스 번들은 멤버가 공통 기본 이름을 공유하지만 이름에 로캘을 식별하는 추가 구성 요소가 있는 패밀리에 속합니다. 예를 들어 리소스 번들 제품군의 기본 이름은 "MyResources"일 수 있습니다. 가족에는 "MyResources"라는 이름의 기본 리소스 번들이 있어야 하며, 특정 로캘이 지원되지 않는 경우 최후의 수단의 번들로 사용됩니다. 그런 다음 가족은 필요한 만큼의 로캘별 멤버(예: "MyResources_de"라는 독일어 멤버를 제공할 수 있습니다.
패밀리의 각 리소스 번들은 동일한 항목을 포함하지만 해당 리소스 번들이 나타내는 로캘에 대해 항목이 번역되었습니다. 예를 들어 "MyResources" 및 "MyResources_de"에는 작업을 취소하는 단추에 사용되는 가 있을 String
수 있습니다. "MyResources"에서 는 "Cancel"을 String
포함할 수 있으며 "MyResources_de"에는 "Abbrechen"이 포함될 수 있습니다.
다른 국가에 대해 다른 리소스가 있는 경우 특수화를 만들 수 있습니다. 예를 들어 "MyResources_de_CH"에는 스위스(CH)의 독일어(de)에 대한 개체가 포함되어 있습니다. 특수화의 일부 리소스만 수정하려는 경우 수정할 수 있습니다.
프로그램에 로캘별 개체가 필요한 경우 blockquote 메서드<를 ResourceBundle
사용하여 클래스를 #getBundle(java.lang.String, java.util.Locale) getBundle
로드합니다.>
ResourceBundle myResources =
ResourceBundle.getBundle("MyResources", currentLocale);
</인용구>
리소스 번들에는 키/값 쌍이 포함됩니다. 키는 번들에서 로캘별 개체를 고유하게 식별합니다. 다음은 두 개의 키/값 쌍인 blockquote를 포함하는 의 ListResourceBundle
예입니다 <.>
public class MyResources extends ListResourceBundle {
protected Object[][] getContents() {
return new Object[][] {
// LOCALIZE THE SECOND STRING OF EACH ARRAY (e.g., "OK")
{"OkKey", "OK"},
{"CancelKey", "Cancel"},
// END OF MATERIAL TO LOCALIZE
};
}
}
</blockquote> 키는 항상 String
s입니다. 이 예제에서 키는 "OkKey" 및 "CancelKey"입니다. 위의 예제에서 값은 String
s--"OK" 및 "Cancel"이기도 하지만, 그렇지 않아도 됩니다. 값은 모든 형식의 개체일 수 있습니다.
적절한 getter 메서드를 사용하여 리소스 번들에서 개체를 검색합니다. "OkKey" 및 "CancelKey"는 모두 문자열이므로 blockquote를 검색<하는 데 사용합니다getString
.>
button1 = new Button(myResources.getString("OkKey"));
button2 = new Button(myResources.getString("CancelKey"));
</blockquote> getter 메서드는 모두 키를 인수로 요구하고 있는 경우 개체를 반환합니다. 개체를 찾을 수 없는 경우 getter 메서드는 을 MissingResourceException
throw합니다.
getString
외에도 는 ResourceBundle
문자열 배열을 가져오는 메서드뿐만 getStringArray
아니라 다른 형식의 개체에 대한 제네릭 getObject
메서드도 제공합니다. 를 사용하는 getObject
경우 결과를 적절한 형식으로 캐스팅해야 합니다. 예: <blockquote>
int[] myIntegers = (int[]) myResources.getObject("intList");
</인용구>
Java Platform은 리소스를 만드는 매우 간단한 방법을 제공하는 및 PropertyResourceBundle
ListResourceBundle
의 ResourceBundle
두 서브클래스를 제공합니다. 이전 예제에서 간략하게 보았듯이 는 ListResourceBundle
해당 리소스를 키/값 쌍 목록으로 관리합니다. PropertyResourceBundle
는 속성 파일을 사용하여 리소스를 관리합니다.
또는 PropertyResourceBundle
이 요구 사항에 맞지 않는 경우 ListResourceBundle
고유한 ResourceBundle
서브클래스를 작성할 수 있습니다. 서브클래스는 및 getKeys()
의 두 메서드를 재정의 handleGetObject
해야 합니다.
서브클래스의 ResourceBundle
구현은 여러 스레드에서 동시에 사용되는 경우 스레드로부터 안전해야 합니다. 이 클래스에서 비 추상 메서드의 기본 구현 및 직접 알려진 구체적인 하위 클래스 ListResourceBundle
및 PropertyResourceBundle
의 메서드는 스레드로부터 안전합니다.
<h3>ResourceBundle.Control</h3>
클래스는 ResourceBundle.Control
instance 사용하는 팩터리 메서드 ResourceBundle.Control
에 getBundle
의해 번들 로드 프로세스를 수행하는 데 필요한 정보를 제공합니다. 비표준 리소스 번들 형식을 사용하도록 설정하거나, 검색 전략을 변경하거나, 캐싱 매개 변수를 정의하기 위해 고유한 하위 클래스를 구현할 수 있습니다. 자세한 내용은 클래스 및 팩터리 메서드에 #getBundle(String, Locale, ClassLoader, Control) getBundle
대한 설명을 참조하세요.
<h3>Cache Management</h3>
팩터리 메서드에서 getBundle
만든 리소스 번들 인스턴스는 기본적으로 캐시되며, 팩터리 메서드는 캐시된 경우 동일한 리소스 번들을 여러 번 instance 반환합니다. getBundle
클라이언트는 캐시를 지우거나, Time to Live 값을 사용하여 캐시된 리소스 번들 인스턴스의 수명을 관리하거나, 리소스 번들 인스턴스를 캐시하지 않도록 지정할 수 있습니다. 자세한 내용은 #getBundle(String, Locale, ClassLoader, Control) <코드>getBundle/code> 팩터리< 메서드, #clearCache(ClassLoader) clearCache
, Control#getTimeToLive(String, Locale) ResourceBundle.Control.getTimeToLive
및 Control#needsReload(String, Locale, String, ClassLoader, ResourceBundle, long) ResourceBundle.Control.needsReload
에 대한 설명을 참조하세요.
<h3>예제</h3>
다음은 두 개의 리소스를 ResourceBundle
관리하는 서브클래스 의 MyResources
매우 간단한 예입니다(더 많은 수의 리소스의 경우 Map
). "부모 수준" ResourceBundle
이 동일한 값을 가진 동일한 키를 처리하는 경우(아래 okKey와 마찬가지로) 값을 제공할 필요가 없습니다. <인용구>
// default (English language, United States)
public class MyResources extends ResourceBundle {
public Object handleGetObject(String key) {
if (key.equals("okKey")) return "Ok";
if (key.equals("cancelKey")) return "Cancel";
return null;
}
public Enumeration<String> getKeys() {
return Collections.enumeration(keySet());
}
// Overrides handleKeySet() so that the getKeys() implementation
// can rely on the keySet() value.
protected Set<String> handleKeySet() {
return new HashSet<String>(Arrays.asList("okKey", "cancelKey"));
}
}
// German language
public class MyResources_de extends MyResources {
public Object handleGetObject(String key) {
// don't need okKey, since parent level handles it.
if (key.equals("cancelKey")) return "Abbrechen";
return null;
}
protected Set<String> handleKeySet() {
return new HashSet<String>(Arrays.asList("cancelKey"));
}
}
</blockquote> 단일 제품군 ResourceBundle
을 사용하도록 제한할 필요가 없습니다. 예를 들어 예외 메시지(ExceptionResources_fr
, ExceptionResources
ExceptionResources_de
, ...)에 대한 번들 집합과 위젯 WidgetResource
용 번들(WidgetResources_fr
, WidgetResources_de
, ...)이 있을 수 있습니다. 그러나 원하는 리소스를 분리할 수 있습니다.
1.1에 추가되었습니다.
에 대한 Java 설명서입니다 java.util.ResourceBundle
.
이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.
생성자
ResourceBundle() |
단독 생성자입니다. |
ResourceBundle(IntPtr, JniHandleOwnership) |
JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다. |
속성
BaseBundleName |
알려진 경우 또는 알 |
Class |
이 |
Handle |
기본 Android instance 대한 핸들입니다. (다음에서 상속됨 Object) |
JniIdentityHashCode |
리소스 번들에는 로캘별 개체가 포함됩니다. (다음에서 상속됨 Object) |
JniPeerMembers |
리소스 번들에는 로캘별 개체가 포함됩니다. |
Keys |
이 |
Locale |
이 리소스 번들의 로캘을 반환합니다. |
Parent |
이 번들의 부모 번들입니다. |
PeerReference |
리소스 번들에는 로캘별 개체가 포함됩니다. (다음에서 상속됨 Object) |
ThresholdClass |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
ThresholdType |
이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다. |
메서드
ClearCache() |
호출자의 클래스 로더를 사용하여 로드된 캐시에서 모든 리소스 번들을 제거합니다. |
ClearCache(ClassLoader) |
지정된 클래스 로더에 의해 로드된 캐시에서 모든 리소스 번들을 제거합니다. |
Clone() |
이 개체의 복사본을 만들고 반환합니다. (다음에서 상속됨 Object) |
ContainsKey(String) |
지정된 |
Dispose() |
리소스 번들에는 로캘별 개체가 포함됩니다. (다음에서 상속됨 Object) |
Dispose(Boolean) |
리소스 번들에는 로캘별 개체가 포함됩니다. (다음에서 상속됨 Object) |
Equals(Object) |
다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다. (다음에서 상속됨 Object) |
GetBundle(String) |
지정된 기본 이름, 기본 로캘 및 호출자의 클래스 로더를 사용하여 리소스 번들을 가져옵니다. |
GetBundle(String, Locale) |
지정된 기본 이름 및 로캘과 호출자의 클래스 로더를 사용하여 리소스 번들을 가져옵니다. |
GetBundle(String, Locale, ClassLoader) |
지정된 기본 이름, 로캘 및 클래스 로더를 사용하여 리소스 번들을 가져옵니다. |
GetBundle(String, Locale, ClassLoader, ResourceBundle+Control) |
지정된 기본 이름, 기본 로캘 및 호출자의 클래스 로더를 사용하여 리소스 번들을 가져옵니다. |
GetBundle(String, Locale, ResourceBundle+Control) |
지정된 기본 이름, 기본 로캘 및 호출자의 클래스 로더를 사용하여 리소스 번들을 가져옵니다. |
GetBundle(String, ResourceBundle+Control) |
지정된 기본 이름, 기본 로캘 및 호출자의 클래스 로더를 사용하여 리소스 번들을 가져옵니다. |
GetHashCode() |
개체의 해시 코드 값을 반환합니다. (다음에서 상속됨 Object) |
GetObject(String) |
이 리소스 번들 또는 해당 부모 중 하나에서 지정된 키에 대한 개체를 가져옵니다. |
GetString(String) |
이 리소스 번들 또는 해당 부모 중 하나에서 지정된 키에 대한 문자열을 가져옵니다. |
GetStringArray(String) |
이 리소스 번들 또는 해당 부모 중 하나에서 지정된 키에 대한 문자열 배열을 가져옵니다. |
HandleGetObject(String) |
이 리소스 번들에서 지정된 키에 대한 개체를 가져옵니다. |
HandleKeySet() |
|
JavaFinalize() |
가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다. (다음에서 상속됨 Object) |
KeySet() |
|
Notify() |
이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다. (다음에서 상속됨 Object) |
NotifyAll() |
이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다. (다음에서 상속됨 Object) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle 속성을 설정합니다. (다음에서 상속됨 Object) |
SetParent(ResourceBundle) |
이 번들의 부모 번들을 설정합니다. |
ToArray<T>() |
리소스 번들에는 로캘별 개체가 포함됩니다. (다음에서 상속됨 Object) |
ToString() |
개체의 문자열 표현을 반환합니다. (다음에서 상속됨 Object) |
UnregisterFromRuntime() |
리소스 번들에는 로캘별 개체가 포함됩니다. (다음에서 상속됨 Object) |
Wait() |
현재 스레드가 각성될 때까지 대기하도록 합니다. 일반적으로 <알림을<> 받>거나<<> 중단/em>합니다. (다음에서 상속됨 Object) |
Wait(Int64) |
현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
Wait(Int64, Int32) |
현재 스레드가 깨어날 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 중단</>em>>을 받거나 <일정량의 실시간이 경과할 때까지 대기합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
IJavaPeerable.Disposed() |
리소스 번들에는 로캘별 개체가 포함됩니다. (다음에서 상속됨 Object) |
IJavaPeerable.DisposeUnlessReferenced() |
리소스 번들에는 로캘별 개체가 포함됩니다. (다음에서 상속됨 Object) |
IJavaPeerable.Finalized() |
리소스 번들에는 로캘별 개체가 포함됩니다. (다음에서 상속됨 Object) |
IJavaPeerable.JniManagedPeerState |
리소스 번들에는 로캘별 개체가 포함됩니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
리소스 번들에는 로캘별 개체가 포함됩니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
리소스 번들에는 로캘별 개체가 포함됩니다. (다음에서 상속됨 Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
리소스 번들에는 로캘별 개체가 포함됩니다. (다음에서 상속됨 Object) |
확장 메서드
JavaCast<TResult>(IJavaObject) |
Android 런타임 확인 형식 변환을 수행합니다. |
JavaCast<TResult>(IJavaObject) |
리소스 번들에는 로캘별 개체가 포함됩니다. |
GetJniTypeName(IJavaPeerable) |
리소스 번들에는 로캘별 개체가 포함됩니다. |