Share via


ResourceBundle 클래스

정의

리소스 번들에는 로캘별 개체가 포함됩니다.

[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
상속
ResourceBundle
파생
특성

설명

리소스 번들에는 로캘별 개체가 포함됩니다. 예를 들어 프로그램에 로캘별 리소스가 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> 키는 항상 Strings입니다. 이 예제에서 키는 "OkKey" 및 "CancelKey"입니다. 위의 예제에서 값은 Strings--"OK" 및 "Cancel"이기도 하지만, 그렇지 않아도 됩니다. 값은 모든 형식의 개체일 수 있습니다.

적절한 getter 메서드를 사용하여 리소스 번들에서 개체를 검색합니다. "OkKey" 및 "CancelKey"는 모두 문자열이므로 blockquote를 검색<하는 데 사용합니다getString.>

button1 = new Button(myResources.getString("OkKey"));
            button2 = new Button(myResources.getString("CancelKey"));

</blockquote> getter 메서드는 모두 키를 인수로 요구하고 있는 경우 개체를 반환합니다. 개체를 찾을 수 없는 경우 getter 메서드는 을 MissingResourceExceptionthrow합니다.

getString외에도 는 ResourceBundle 문자열 배열을 가져오는 메서드뿐만 getStringArray아니라 다른 형식의 개체에 대한 제네릭 getObject 메서드도 제공합니다. 를 사용하는 getObject경우 결과를 적절한 형식으로 캐스팅해야 합니다. 예: <blockquote>

int[] myIntegers = (int[]) myResources.getObject("intList");

</인용구>

Java Platform은 리소스를 만드는 매우 간단한 방법을 제공하는 및 PropertyResourceBundleListResourceBundleResourceBundle두 서브클래스를 제공합니다. 이전 예제에서 간략하게 보았듯이 는 ListResourceBundle 해당 리소스를 키/값 쌍 목록으로 관리합니다. PropertyResourceBundle 는 속성 파일을 사용하여 리소스를 관리합니다.

또는 PropertyResourceBundle 이 요구 사항에 맞지 않는 경우 ListResourceBundle 고유한 ResourceBundle 서브클래스를 작성할 수 있습니다. 서브클래스는 및 getKeys()의 두 메서드를 재정의 handleGetObject 해야 합니다.

서브클래스의 ResourceBundle 구현은 여러 스레드에서 동시에 사용되는 경우 스레드로부터 안전해야 합니다. 이 클래스에서 비 추상 메서드의 기본 구현 및 직접 알려진 구체적인 하위 클래스 ListResourceBundlePropertyResourceBundle 의 메서드는 스레드로부터 안전합니다.

<h3>ResourceBundle.Control</h3>

클래스는 ResourceBundle.Control instance 사용하는 팩터리 메서드 ResourceBundle.ControlgetBundle 의해 번들 로드 프로세스를 수행하는 데 필요한 정보를 제공합니다. 비표준 리소스 번들 형식을 사용하도록 설정하거나, 검색 전략을 변경하거나, 캐싱 매개 변수를 정의하기 위해 고유한 하위 클래스를 구현할 수 있습니다. 자세한 내용은 클래스 및 팩터리 메서드에 #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.getTimeToLiveControl#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&lt;String&gt; getKeys() {
                    return Collections.enumeration(keySet());
                }

                // Overrides handleKeySet() so that the getKeys() implementation
                // can rely on the keySet() value.
                protected Set&lt;String&gt; handleKeySet() {
                    return new HashSet&lt;String&gt;(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&lt;String&gt; handleKeySet() {
                    return new HashSet&lt;String&gt;(Arrays.asList("cancelKey"));
                }
            }

</blockquote> 단일 제품군 ResourceBundle을 사용하도록 제한할 필요가 없습니다. 예를 들어 예외 메시지(ExceptionResources_fr, ExceptionResourcesExceptionResources_de, ...)에 대한 번들 집합과 위젯 WidgetResource 용 번들(WidgetResources_fr, WidgetResources_de, ...)이 있을 수 있습니다. 그러나 원하는 리소스를 분리할 수 있습니다.

1.1에 추가되었습니다.

에 대한 Java 설명서입니다 java.util.ResourceBundle.

이 페이지의 일부는 만들고 공유하며 에 설명된 용어에 따라 사용되는 작업을 기반으로 수정됩니다.

생성자

ResourceBundle()

단독 생성자입니다.

ResourceBundle(IntPtr, JniHandleOwnership)

JNI 개체의 관리되는 표현을 만들 때 사용되는 생성자입니다. 런타임에서 호출합니다.

속성

BaseBundleName

알려진 경우 또는 알 null 수 없는 경우 이 번들의 기본 이름을 반환합니다.

Class

Object의 런타임 클래스를 반환합니다.

(다음에서 상속됨 Object)
Handle

기본 Android instance 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

리소스 번들에는 로캘별 개체가 포함됩니다.

(다음에서 상속됨 Object)
JniPeerMembers

리소스 번들에는 로캘별 개체가 포함됩니다.

Keys

ResourceBundle에 포함된 리소스의 이름을 반환합니다.

Locale

이 리소스 번들의 로캘을 반환합니다.

Parent

이 번들의 부모 번들입니다.

PeerReference

리소스 번들에는 로캘별 개체가 포함됩니다.

(다음에서 상속됨 Object)
ThresholdClass

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

ThresholdType

이 API는 Android용 Mono 인프라를 지원하며 코드에서 직접 사용할 수 없습니다.

메서드

ClearCache()

호출자의 클래스 로더를 사용하여 로드된 캐시에서 모든 리소스 번들을 제거합니다.

ClearCache(ClassLoader)

지정된 클래스 로더에 의해 로드된 캐시에서 모든 리소스 번들을 제거합니다.

Clone()

이 개체의 복사본을 만들고 반환합니다.

(다음에서 상속됨 Object)
ContainsKey(String)

지정된 key 가 이 ResourceBundle 번들 또는 부모 번들에 포함되어 있는지 여부를 확인합니다.

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()

SetResourceBundle에 em only</em>>이 <포함된 키의 를 반환합니다.

JavaFinalize()

가비지 수집에서 개체에 대한 참조가 더 이상 없다고 판단할 때 개체의 가비지 수집기에서 호출됩니다.

(다음에서 상속됨 Object)
KeySet()

SetResourceBundle 및 해당 부모 번들에 포함된 모든 키의 를 반환합니다.

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)

리소스 번들에는 로캘별 개체가 포함됩니다.

적용 대상