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 可以重写 方法,以便在本地化资源的组织和打包中提供不同的约定。 方法是toResourceNamefinal避免使用错误的资源和类名分隔符。

两个工厂方法和 #getControl(List)#getNoFallbackControl(List)提供 ResourceBundle.Control 实现默认捆绑加载过程的常见变体的实例。

方法返回 Control#getFormats(String) getFormats 的格式和方法返回的 ResourceBundle.Control#getCandidateLocales(String, Locale) getCandidateLocales 候选区域设置在同一基本捆绑包的所有 ResourceBundle.getBundle 调用中必须一致。 否则, ResourceBundle.getBundle 方法可能会返回意外的捆绑包。 例如,如果仅 "java.class"getFormats 方法为第一次调用 ResourceBundle.getBundle 返回,并且只 "java.properties" 返回第二次调用,则第二次调用将返回第一次调用期间缓存的基于类的调用。

如果一个 ResourceBundle.Control 实例同时由多个线程使用,则必须是线程安全的。 ResourceBundle.getBundle 不同步以调用 ResourceBundle.Control 方法。 方法的默认实现是线程安全的。

应用程序可以指定 ResourceBundle.Control 工厂 getControl 方法返回或从 的子类 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_CH.properties 其父级 MyResources_fr.properties 为 的父级 MyResources.propertiesMyResources_fr_CH.properties (未隐藏,但 MyResources_fr_CH.class is.)

<b>示例 2</b>

下面是使用 Properties#loadFromXML(java.io.InputStream) Properties.loadFromXML加载基于 XML 的捆绑包的示例。

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 文档。

此页面的部分内容是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的术语使用。

构造函数

ResourceBundle.Control()

唯一构造函数。

ResourceBundle.Control(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

字段

TtlDontCache

不缓存加载的资源捆绑包实例的生存时间常量。

TtlNoExpirationControl

生存时间常量,用于禁用缓存中已加载的资源捆绑包实例的过期控制。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
FormatClass

包含 "java.class"的仅类格式List

FormatDefault

默认格式 List,其中包含字符串 "java.class""java.properties",按此顺序排列。

FormatProperties

包含 "java.properties"的仅属性格式List

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 支持 Mono for Android 基础结构,不应直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码使用。

方法

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)

返回 的 LocaleList作为 和 localebaseName候选区域设置。

GetControl(IList<String>)

ResourceBundle.Control 定义一组回调方法,这些回调方法在捆绑包加载过程中由 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 工厂方法调用。

GetFallbackLocale(String, Locale)

返回要 Locale 用作工厂方法进一步资源捆绑搜索的回退区域设置的 ResourceBundle.getBundle

GetFormats(String)

返回 包含ListString要用于加载给定 baseName的资源捆绑包的格式的 。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
GetNoFallbackControl(IList<String>)

ResourceBundle.Control 定义一组回调方法,这些回调方法在捆绑包加载过程中由 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 工厂方法调用。

GetTimeToLive(String, Locale)

返回在此 ResourceBundle.Control下加载的资源捆绑包的生存时间 (TTL) 值。

JavaFinalize()

当垃圾回收确定不再引用对象时,由对象上的垃圾回收器调用。

(继承自 Object)
NeedsReload(String, Locale, String, ClassLoader, ResourceBundle, Int64)

确定是否需要根据给定的加载时间loadTime或其他条件重新加载缓存中过期bundle的 。

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)

通过将 中bundleName出现的所有匹配项'.'替换为 '/' 并追加 '.' 和 给定文件 suffix,将给定bundleName的 转换为 方法所需的ClassLoader#getResource ClassLoader.getResource形式。

ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

ResourceBundle.Control 定义一组回调方法,这些回调方法在捆绑包加载过程中由 ResourceBundle#getBundle(String, Locale, ClassLoader, Control) ResourceBundle.getBundle 工厂方法调用。

(继承自 Object)
Wait()

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<>

(继承自 Object)
Wait(Int64)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Wait(Int64, Int32)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 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 工厂方法调用。

适用于