다음을 통해 공유


ResourceBundle.Control 클래스

정의

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

[Android.Runtime.Register("java/util/ResourceBundle$Control", DoNotGenerateAcw=true)]
public class ResourceBundle.Control : Java.Lang.Object
[<Android.Runtime.Register("java/util/ResourceBundle$Control", DoNotGenerateAcw=true)>]
type ResourceBundle.Control = class
    inherit Object
상속
ResourceBundle.Control
특성

설명

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다. 즉, ResourceBundle.Control 리소스 번들을 로드하기 위해 팩터리 메서드와 공동 작업합니다. 콜백 메서드의 기본 구현은 팩터리 메서드가 기본 동작을 수행하는 데 필요한 정보를 제공합니다.

콜백 메서드 외에도 콜백 메서드 #toBundleName(String, Locale) toBundleName 를 구현하는 데 편의를 위해 메서드와 #toResourceName(String, String) toResourceName 메서드가 주로 정의됩니다. 그러나 toBundleName 조직에서 다양한 규칙을 제공하고 지역화된 리소스를 패키징하도록 메서드를 재정의할 수 있습니다. 이 toResourceName 메서드는 final 잘못된 리소스 및 클래스 이름 구분 기호를 사용하지 않도록 하기 위한 것입니다.

두 가지 팩터리 메서드 #getControl(List)#getNoFallbackControl(List)기본 번들 로드 프로세스의 일반적인 변형을 구현하는 인스턴스를 제공합니다 ResourceBundle.Control .

메서드에서 반환된 Control#getFormats(String) getFormats 형식과 메서드에서 반환된 후보 로캘은 ResourceBundle.Control#getCandidateLocales(String, Locale) getCandidateLocales 동일한 기본 번들에 대한 모든 ResourceBundle.getBundle 호출에서 일관되어야 합니다. 그렇지 않으면 메서드가 ResourceBundle.getBundle 의도하지 않은 번들을 반환할 수 있습니다. 예를 들어 첫 번째 호출 ResourceBundle.getBundle 에 대한 메서드에서만 "java.class" 반환되고 두 번째 호출에 대해서만 "java.properties" 반환 getFormats 되는 경우 두 번째 호출은 첫 번째 호출 중에 캐시된 클래스 기반 클래스 기반 호출을 반환합니다.

인스턴스가 ResourceBundle.Control 여러 스레드에서 동시에 사용되는 경우 스레드로부터 안전해야 합니다. ResourceBundle.getBundle 는 메서드를 호출 ResourceBundle.Control 하기 위해 동기화되지 않습니다. 메서드의 기본 구현은 스레드로부터 안전합니다.

애플리케이션은 팩터리 메서드에서 getControl 반환되거나 서브클래스에서 ResourceBundle.Control 만든 인스턴스를 지정 ResourceBundle.Control 하여 번들 로드 프로세스를 사용자 지정할 수 있습니다. 다음은 기본 번들 로드 프로세스를 변경하는 예제입니다.

<b>예제 1</b>

다음 코드에서는 속성 기반 리소스만 조회할 수 ResourceBundle.getBundle 있습니다.

import java.util.*;
            import static java.util.ResourceBundle.Control.*;
            ...
            ResourceBundle bundle =
              ResourceBundle.getBundle("MyResources", new Locale("fr", "CH"),
                                       ResourceBundle.Control.getControl(FORMAT_PROPERTIES));

설명의 예제 ResourceBundle.getBundle 에 있는 리소스 번들을 고려할 때 이 ResourceBundle.getBundle 호출은 MyResources_fr.properties 부모가 부모MyResources.properties인 리소스를 로드합니다MyResources_fr_CH.properties. (MyResources_fr_CH.properties 숨겨지지는 않지만 MyResources_fr_CH.class 숨겨집니다.)

<b>예제 2</b>

다음은 .를 사용하여 Properties#loadFromXML(java.io.InputStream) Properties.loadFromXMLXML 기반 번들을 로드하는 예제입니다.

ResourceBundle rb = ResourceBundle.getBundle("Messages",
                new ResourceBundle.Control() {
                    public List&lt;String&gt; getFormats(String baseName) {
                        if (baseName == null)
                            throw new NullPointerException();
                        return Arrays.asList("xml");
                    }
                    public ResourceBundle newBundle(String baseName,
                                                    Locale locale,
                                                    String format,
                                                    ClassLoader loader,
                                                    boolean reload)
                                     throws IllegalAccessException,
                                            InstantiationException,
                                            IOException {
                        if (baseName == null || locale == null
                              || format == null || loader == null)
                            throw new NullPointerException();
                        ResourceBundle bundle = null;
                        if (format.equals("xml")) {
                            String bundleName = toBundleName(baseName, locale);
                            String resourceName = toResourceName(bundleName, format);
                            InputStream stream = null;
                            if (reload) {
                                URL url = loader.getResource(resourceName);
                                if (url != null) {
                                    URLConnection connection = url.openConnection();
                                    if (connection != null) {
                                        // Disable caches to get fresh data for
                                        // reloading.
                                        connection.setUseCaches(false);
                                        stream = connection.getInputStream();
                                    }
                                }
                            } else {
                                stream = loader.getResourceAsStream(resourceName);
                            }
                            if (stream != null) {
                                BufferedInputStream bis = new BufferedInputStream(stream);
                                bundle = new XMLResourceBundle(bis);
                                bis.close();
                            }
                        }
                        return bundle;
                    }
                });

            ...

            private static class XMLResourceBundle extends ResourceBundle {
                private Properties props;
                XMLResourceBundle(InputStream stream) throws IOException {
                    props = new Properties();
                    props.loadFromXML(stream);
                }
                protected Object handleGetObject(String key) {
                    return props.getProperty(key);
                }
                public Enumeration&lt;String&gt; getKeys() {
                    ...
                }
            }

1.6에 추가되었습니다.

에 대한 java.util.ResourceBundle.ControlJava 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

생성자

ResourceBundle.Control()

단독 생성자입니다.

ResourceBundle.Control(IntPtr, JniHandleOwnership)

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

필드

TtlDontCache

로드된 리소스 번들 인스턴스를 캐싱하지 않는 TTL(Time to Live) 상수입니다.

TtlNoExpirationControl

캐시에서 로드된 리소스 번들 인스턴스에 대한 만료 제어를 사용하지 않도록 설정하기 위한 TTL(Time to Live) 상수입니다.

속성

Class

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

(다음에서 상속됨 Object)
FormatClass

를 포함하는 클래스 전용 형식 List 입니다 "java.class".

FormatDefault

문자열 "java.class""java.properties"이 순서를 포함하는 기본 형식List입니다.

FormatProperties

를 포함하는 속성 전용 형식 List 입니다 "java.properties".

Handle

기본 Android 인스턴스에 대한 핸들입니다.

(다음에서 상속됨 Object)
JniIdentityHashCode

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

(다음에서 상속됨 Object)
JniPeerMembers

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

PeerReference

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

(다음에서 상속됨 Object)
ThresholdClass

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

ThresholdType

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

메서드

Clone()

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

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

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

(다음에서 상속됨 Object)
Dispose(Boolean)

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

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

다른 개체가 이 개체와 "같음"인지 여부를 나타냅니다.

(다음에서 상속됨 Object)
GetCandidateLocales(String, Locale)

List 및 에 대한 baseName locale후보 로캘로 s를 Locale반환합니다.

GetControl(IList<String>)

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

GetFallbackLocale(String, Locale)

팩터리 Locale 메서드에서 추가 리소스 번들 검색 ResourceBundle.getBundle 을 위해 대체 로캘로 사용할 값을 반환합니다.

GetFormats(String)

List String지정된 baseName리소스 번들에 대한 리소스 번들을 로드하는 데 사용할 형식을 포함하는 형식을 반환합니다.

GetHashCode()

개체에 대한 해시 코드 값을 반환합니다.

(다음에서 상속됨 Object)
GetNoFallbackControl(IList<String>)

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

GetTimeToLive(String, Locale)

ResourceBundle.Control아래에 로드된 리소스 번들에 대한 TTL(Time to Live) 값을 반환합니다.

JavaFinalize()

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

(다음에서 상속됨 Object)
NeedsReload(String, Locale, String, ClassLoader, ResourceBundle, Int64)

지정된 로드 시간 또는 다른 기준에 따라 캐시의 만료된 bundle 시간을 loadTime 다시 로드해야 하는지 여부를 결정합니다.

NewBundle(String, Locale, String, ClassLoader, Boolean)

필요한 경우 지정된 클래스 로더를 사용하여 지정된 형식 및 로캘의 지정된 번들 이름에 대한 리소스 번들을 인스턴스화합니다.

Notify()

이 개체의 모니터에서 대기 중인 단일 스레드를 해제합니다.

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

이 개체의 모니터에서 대기 중인 모든 스레드를 해제합니다.

(다음에서 상속됨 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle 속성을 설정합니다.

(다음에서 상속됨 Object)
ToArray<T>()

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

(다음에서 상속됨 Object)
ToBundleName(String, Locale)

지정된 baseName 이름 및 locale 번들 이름을 변환합니다.

ToResourceName(String, String)

제공된 모든 항목을 a 및 지정된 파일로 대체하고 추가하여 지정된 bundleName 형식을 '.' 메서드에 bundleName 필요한 ClassLoader#getResource ClassLoader.getResource 형식으로 '/' 변환합니다'.'.suffix

ToString()

개체의 문자열 표현을 반환합니다.

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

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

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

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <알림을 받<>거나 <><중단/종료>합니다.>

(다음에서 상속됨 Object)
Wait(Int64, Int32)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)
Wait(Int64)

현재 스레드가 각성될 때까지 대기하게 하며, 일반적으로 <>알림을 받<거나 <중단/>종료><>하거나 일정량의 실시간 경과가 발생할 때까지 대기합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IJavaPeerable.Disposed()

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

(다음에서 상속됨 Object)
IJavaPeerable.DisposeUnlessReferenced()

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

(다음에서 상속됨 Object)
IJavaPeerable.Finalized()

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

(다음에서 상속됨 Object)
IJavaPeerable.JniManagedPeerState

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

(다음에서 상속됨 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

(다음에서 상속됨 Object)

확장 메서드

JavaCast<TResult>(IJavaObject)

Android 런타임 확인 형식 변환을 수행합니다.

JavaCast<TResult>(IJavaObject)

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

GetJniTypeName(IJavaPeerable)

ResourceBundle.Control 는 번들 로드 프로세스 중에 팩터리 메서드에서 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 호출하는 콜백 메서드 집합을 정의합니다.

적용 대상