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)ResourceBundle.Control并提供#getNoFallbackControl(List)实现默认捆绑加载过程的常见变体的实例。

方法返回 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.propertiesMyResources.properties级的资源捆绑包。 (MyResources_fr_CH.properties 不是隐藏的,而是 MyResources_fr_CH.class

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

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

构造函数

ResourceBundle.Control()

唯一构造函数。

ResourceBundle.Control(IntPtr, JniHandleOwnership)

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

字段

TtlDontCache

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

TtlNoExpirationControl

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

属性

Class

返回此 Object的运行时类。

(继承自 Object)
FormatClass

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

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)

返回一个 ListLocales 作为候选区域设置, baseNamelocale返回 。

GetControl(IList<String>)

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

GetFallbackLocale(String, Locale)

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

GetFormats(String)

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

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值转换为方法所需的ClassLoader#getResource ClassLoader.getResource窗体,方法是将所有匹配bundleName'/''.'替换为并追加一个'.'和给定文件suffix

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 的一组回调方法。

适用于