resourcebundle.html

来自「j2se5-api-zh,java文档的中文版本」· HTML 代码 · 共 694 行 · 第 1/3 页

HTML
694
字号
<DD>返回此资源包的语言环境。调用 getBundle() 后可使用此方法来确定返回的资源包是否真正对应于所请求的语言环境,或者只是一个回退。<P><DD><DL><DT><B>返回:</B><DD>此资源包的语言环境。</DL></DD></DL><HR><A NAME="setParent(java.util.ResourceBundle)"><!-- --></A><H3>setParent</H3><PRE>protected void <B>setParent</B>(<A HREF="ResourceBundle.html" title="java.util 中的类">ResourceBundle</A>&nbsp;parent)</PRE><DL><DD>设置此包的父包。当此包不包含特定的资源时,通过 <A HREF="ResourceBundle.html#getObject(java.lang.String)"><CODE>getObject</CODE></A> 来搜索父包。<P><DD><DL><DT><B>参数:</B><DD><CODE>parent</CODE> - 此包的父包。</DL></DD></DL><HR><A NAME="getBundle(java.lang.String)"><!-- --></A><H3>getBundle</H3><PRE>public static final <A HREF="ResourceBundle.html" title="java.util 中的类">ResourceBundle</A> <B>getBundle</B>(<A HREF="../lang/String.html" title="java.lang 中的类">String</A>&nbsp;baseName)</PRE><DL><DD>使用指定的基本名称、默认的语言环境和调用方的类加载器获取资源包。调用此方法等效于调用:<blockquote><code>getBundle(baseName, Locale.getDefault(), this.getClass().getClassLoader())</code>,</blockquote>除了要使用 <code>ResourceBundle</code> 的安全特权来运行 <code>getClassLoader()</code>。有关搜索和实例化策略的信息,请参阅 <A HREF="ResourceBundle.html#getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader)"><CODE>getBundle</CODE></A>。<P><DD><DL><DT><B>参数:</B><DD><CODE>baseName</CODE> - 资源包的基本名称,是一个完全限定类名。<DT><B>返回:</B><DD>具有给定基本名称和默认语言环境的资源包。<DT><B>抛出:</B><DD><CODE><A HREF="../lang/NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果 <code>baseName</code> 为 <code>null</code>。<DD><CODE><A HREF="MissingResourceException.html" title="java.util 中的类">MissingResourceException</A></CODE> - 如果未找到指定基本名称的资源包。</DL></DD></DL><HR><A NAME="getBundle(java.lang.String, java.util.Locale)"><!-- --></A><H3>getBundle</H3><PRE>public static final <A HREF="ResourceBundle.html" title="java.util 中的类">ResourceBundle</A> <B>getBundle</B>(<A HREF="../lang/String.html" title="java.lang 中的类">String</A>&nbsp;baseName,                                             <A HREF="Locale.html" title="java.util 中的类">Locale</A>&nbsp;locale)</PRE><DL><DD>使用指定的基本名称和语言环境,以及调用方的类加载器获取资源包。调用此方法等效于调用<blockquote><code>getBundle(baseName, locale, this.getClass().getClassLoader())</code>,</blockquote>除了要使用 <code>ResourceBundle</code> 的安全特权来运行 <code>getClassLoader()</code>。有关搜索和实例化策略的信息,请参阅 <A HREF="ResourceBundle.html#getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader)"><CODE>getBundle</CODE></A>。<P><DD><DL><DT><B>参数:</B><DD><CODE>baseName</CODE> - 资源包的基本名称,是一个完全限定类名。<DD><CODE>locale</CODE> - 资源包所需的语言环境。<DT><B>返回:</B><DD>具有给定基本名称和语言环境的资源包。<DT><B>抛出:</B><DD><CODE><A HREF="../lang/NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果 <code>baseName</code> 或 <code>locale</code> 为 <code>null</code>。<DD><CODE><A HREF="MissingResourceException.html" title="java.util 中的类">MissingResourceException</A></CODE> - 如果未找到指定基本名称的资源包。</DL></DD></DL><HR><A NAME="getBundle(java.lang.String, java.util.Locale, java.lang.ClassLoader)"><!-- --></A><H3>getBundle</H3><PRE>public static <A HREF="ResourceBundle.html" title="java.util 中的类">ResourceBundle</A> <B>getBundle</B>(<A HREF="../lang/String.html" title="java.lang 中的类">String</A>&nbsp;baseName,                                       <A HREF="Locale.html" title="java.util 中的类">Locale</A>&nbsp;locale,                                       <A HREF="../lang/ClassLoader.html" title="java.lang 中的类">ClassLoader</A>&nbsp;loader)</PRE><DL><DD>使用指定的基本名称、语言环境和类加载器获取资源包。<p>从概念上讲,<code>getBundle</code> 使用下列策略来搜索并实例化资源包:<p><code>getBundle</code> 使用基本名称、指定的语言环境和默认语言环境(从 <A HREF="Locale.html#getDefault()"><CODE>Locale.getDefault</CODE></A> 获得)来生成<em>候选包名称</em> 序列。如果指定语言环境的语言、国家和变量都是空字符串,则基本名称就是惟一的候选包名称。否则,从指定语言环境 (language1, country1, and variant1) 和默认语言环境 (language2, country2, and variant2) 的属性值生成下列序列: <ul> <li> baseName + "_" + language1 + "_" + country1 + "_" + variant1 <li> baseName + "_" + language1 + "_" + country1 <li> baseName + "_" + language1 <li> baseName + "_" + language2 + "_" + country2 + "_" + variant2 <li> baseName + "_" + language2 + "_" + country2 <li> baseName + "_" + language2 <li> baseName </ul> <p>省略最后部分为空的候选包名称。例如,如果 country1 是一个空字符串,则省略第二个候选包名称。<p><code>getBundle</code> 然后在候选包名称上进行迭代,找到第一个可<em>实例化</em> 为实际资源包的候选包名称。对于每个候选包名称,它都试图创建资源包:<ul><li>首先,它试图使用候选包名称加载一个类。如果可以找到这样的类并使用指定的类加载器将其加载,并且如果此类的分配与 ResourceBundle 兼容并可从 ResourceBundle 访问它,还可以将其实例化,则 <code>getBundle</code> 创建此类的一个新实例,并使用它作为<em>结果资源包</em>。 <li>否则,<code>getBundle</code> 会试图搜索属性资源文件。它从候选包名称生成一个路径名,方法是用 "/" 替换所有的 "." 字符并追加字符串 ".properties"。然后试图用 <A HREF="../lang/ClassLoader.html#getResource(java.lang.String)"><CODE>ClassLoader.getResource</CODE></A> 找到一个具有此名称的“资源”(注意,<code>getResource</code> 中的“资源”与资源包中的内容没有任何关系,它只是一个数据的容器,如文件)。如果它找到一个“资源”,则会试图用其内容创建一个新的 <A HREF="PropertyResourceBundle.html" title="java.util 中的类"><CODE>PropertyResourceBundle</CODE></A>。如果成功,那么此实例就成为<em>结果资源包</em>。 </ul> <p>如果未找到结果资源包,则抛出 <code>MissingResourceException</code>。 <p>一旦找到了结果资源包,那么它的父链就是已实例化的。<code>getBundle</code> 在可以获得的候选包名称中进行迭代,获得名称的方法是从结果资源包的包名称中连续移除变量、国家和语言(每次都用前缀 "_")。正如上面所述,省略最后组件是空字符串的候选包名称。对于每个候选包名称,它都会试图实例化一个资源包,如上所述。只要能够成功,它就用新的资源包调用先前已实例化资源包的 <A HREF="ResourceBundle.html#setParent(java.util.ResourceBundle)"><CODE>setParent</CODE></A> 方法,除非先前已实例化的资源包已经有非 null 的父包。 <p><code>getBundle</code> 实现可能会缓存已实例化的资源包并多次返回相同的资源包实例。只要结果资源包及其父链的选择符合上面的描述,则还可能改变实例化资源包的序列。 <p><code>baseName</code> 参数应该是一个完全限定类名。但是,为了与早期的版本兼容,Sun 的 Java 2 运行时环境并不对此进行检查,所以可通过指定路径名(使用 "/")而不是完全限定类名(使用 ".")来访问 <code>PropertyResourceBundle</code>。 <p><strong>示例:</strong>提供了下面的类和属性文件:MyResources.class、MyResources_fr_CH.properties、MyResources_fr_CH.class、MyResources_fr.properties、MyResources_en.properties、MyResources_es_ES.class。所有文件的内容都是有效的(也就是 ".class" 文件是 ResourceBundle 的公共非抽象子类,".properties" 文件的语法正确)。默认的语言环境是 <code>Locale("en", "GB")</code>。 <p>如下所示,使用给出的语言环境参数值调用 <code>getBundle</code>,实例化资源包: <ul> <li>Locale("fr", "CH"):结果 MyResources_fr_CH.class,父 MyResources_fr.properties,父 MyResources.class <li>Locale("fr", "FR"):结果 MyResources_fr.properties,父 MyResources.class <li>Locale("de", "DE"):结果 MyResources_en.properties,父 MyResources.class <li>Locale("en", "US"):结果 MyResources_en.properties,父 MyResources.class <li>Locale("es", "ES"):结果 MyResources_es_ES.class,父 MyResources.class </ul>从未使用 MyResources_fr_CH.properties 文件,因为它由 MyResources_fr_CH.class 隐藏了。 <p><P><DD><DL><DT><B>参数:</B><DD><CODE>baseName</CODE> - 资源包的基本名称,是一个完全限定类名。<DD><CODE>locale</CODE> - 所需资源包的语言环境。<DD><CODE>loader</CODE> - 加载资源包的类加载器。<DT><B>返回:</B><DD>具有给定基本名称和语言环境的资源包。<DT><B>抛出:</B><DD><CODE><A HREF="../lang/NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果 <code>baseName</code>、<code>locale</code> 或 <code>loader</code> 为 <code>null</code>。<DD><CODE><A HREF="MissingResourceException.html" title="java.util 中的类">MissingResourceException</A></CODE> - 如果未找到指定基本名称的资源包。<DT><B>从以下版本开始:</B></DT>  <DD>1.2</DD></DL></DD></DL><HR><A NAME="handleGetObject(java.lang.String)"><!-- --></A><H3>handleGetObject</H3><PRE>protected abstract <A HREF="../lang/Object.html" title="java.lang 中的类">Object</A> <B>handleGetObject</B>(<A HREF="../lang/String.html" title="java.lang 中的类">String</A>&nbsp;key)</PRE><DL><DD>从此资源包中获取给定键的对象。如果此资源包未包含给定键的对象,则返回 null。<P><DD><DL><DT><B>参数:</B><DD><CODE>key</CODE> - 所需对象的键。<DT><B>返回:</B><DD>给定键的对象,或者为 null。<DT><B>抛出:</B><DD><CODE><A HREF="../lang/NullPointerException.html" title="java.lang 中的类">NullPointerException</A></CODE> - 如果 <code>key</code> 为 <code>null</code>。</DL></DD></DL><HR><A NAME="getKeys()"><!-- --></A><H3>getKeys</H3><PRE>public abstract <A HREF="Enumeration.html" title="java.util 中的接口">Enumeration</A>&lt;<A HREF="../lang/String.html" title="java.lang 中的类">String</A>&gt; <B>getKeys</B>()</PRE><DL><DD>返回键的枚举。<P><DD><DL></DL></DD></DL><!-- ========= END OF CLASS DATA ========= --><HR><!-- ======= START OF BOTTOM NAVBAR ====== --><A NAME="navbar_bottom"><!-- --></A><A HREF="#skip-navbar_bottom" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">  <TR ALIGN="center" VALIGN="top">  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>概述</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>软件包</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>类</B></FONT>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/ResourceBundle.html"><FONT CLASS="NavBarFont1"><B>使用</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>树</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>已过时</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>索引</B></FONT></A>&nbsp;</TD>  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../help-doc.html"><FONT CLASS="NavBarFont1"><B>帮助</B></FONT></A>&nbsp;</TD>  </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><b>Java<sup><font size=-2>TM</font></sup>&nbsp;2&nbsp;Platform<br>Standard&nbsp;Ed. 5.0</b></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">&nbsp;<A HREF="RandomAccess.html" title="java.util 中的接口"><B>上一个类</B></A>&nbsp;&nbsp;<A HREF="Scanner.html" title="java.util 中的类"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">  <A HREF="../../index.html@java_2Futil_2FResourceBundle.html" target="_top"><B>框架</B></A>  &nbsp;&nbsp;<A HREF="ResourceBundle.html" target="_top"><B>无框架</B></A>  &nbsp;&nbsp;<SCRIPT type="text/javascript">  <!--  if(window==top) {    document.writeln('<A HREF="../../allclasses-noframe.html"><B>所有类</B></A>');  }  //--></SCRIPT><NOSCRIPT>  <A HREF="../../allclasses-noframe.html"><B>所有类</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">  摘要:&nbsp;嵌套&nbsp;|&nbsp;<A HREF="#field_summary">字段</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">构造方法</A>&nbsp;|&nbsp;<A HREF="#method_summary">方法</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">详细信息:&nbsp;<A HREF="#field_detail">字段</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">构造方法</A>&nbsp;|&nbsp;<A HREF="#method_detail">方法</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR><font size="-1"><a href="../../../../../../../../java.sun.com/cgi-bin/bugreport.cgi">提交错误或意见</a><br>有关更多的 API 参考资料和开发人员文档,请参阅 <a href="../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/devdocs-vs-specs.html">Java 2 SDK SE 开发人员文档</a>。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。 <p>版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守<a href="../../../../../../../../java.sun.com/j2se/1.5.0/docs/relnotes/license.html">许可证条款</a>。另请参阅<a href="../../../../../../../../java.sun.com/docs/redist.html">文档重新分发政策</a>。</font></BODY></HTML>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?