abstractpreferences.html

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

HTML
933
字号
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc (build 1.5.0_03) on Wed Nov 02 09:52:12 CST 2005 --><META http-equiv="Content-Type" content="text/html; charset=gb2312"><TITLE>AbstractPreferences (Java 2 Platform SE 5.0)</TITLE><META NAME="keywords" CONTENT="java.util.prefs.AbstractPreferences class"><LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){    parent.document.title="AbstractPreferences (Java 2 Platform SE 5.0)";}</SCRIPT><NOSCRIPT></NOSCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= START OF TOP NAVBAR ======= --><A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" title="跳过导航链接"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_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/AbstractPreferences.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;上一个类&nbsp;&nbsp;<A HREF="BackingStoreException.html" title="java.util.prefs 中的类"><B>下一个类</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">  <A HREF="../../../index.html@java_2Futil_2Fprefs_2FAbstractPreferences.html" target="_top"><B>框架</B></A>  &nbsp;&nbsp;<A HREF="AbstractPreferences.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_top"></A><!-- ========= END OF TOP NAVBAR ========= --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">java.util.prefs</FONT><BR>类 AbstractPreferences</H2><PRE><A HREF="../../lang/Object.html" title="java.lang 中的类">java.lang.Object</A>  <IMG SRC="../../../resources/inherit.gif" ALT="继承者 "><A HREF="Preferences.html" title="java.util.prefs 中的类">java.util.prefs.Preferences</A>      <IMG SRC="../../../resources/inherit.gif" ALT="继承者 "><B>java.util.prefs.AbstractPreferences</B></PRE><HR><DL><DT><PRE>public abstract class <B>AbstractPreferences</B><DT>extends <A HREF="Preferences.html" title="java.util.prefs 中的类">Preferences</A></DL></PRE><P>此类提供了 <A HREF="Preferences.html" title="java.util.prefs 中的类"><CODE>Preferences</CODE></A> 类的骨干实现,从而大大简化了实现此类的任务。<p><strong>此类仅供 <tt>Preferences</tt> 实现者使用。<tt>Preferences</tt> 设施的普通用户无需参考此文档。<A HREF="Preferences.html" title="java.util.prefs 中的类"><CODE>Preferences</CODE></A> 文档已经足够了。</strong><p>实现者必须重写九个抽象服务提供程序接口 (SPI) 方法:<A HREF="AbstractPreferences.html#getSpi(java.lang.String)"><CODE>getSpi(String)</CODE></A>、<A HREF="AbstractPreferences.html#putSpi(java.lang.String, java.lang.String)"><CODE>putSpi(String,String)</CODE></A>、<A HREF="AbstractPreferences.html#removeSpi(java.lang.String)"><CODE>removeSpi(String)</CODE></A>、<A HREF="AbstractPreferences.html#childSpi(java.lang.String)"><CODE>childSpi(String)</CODE></A>、<A HREF="AbstractPreferences.html#removeNodeSpi()"><CODE>removeNodeSpi()</CODE></A>、<A HREF="AbstractPreferences.html#keysSpi()"><CODE>keysSpi()</CODE></A>、<A HREF="AbstractPreferences.html#childrenNamesSpi()"><CODE>childrenNamesSpi()</CODE></A>、<A HREF="AbstractPreferences.html#syncSpi()"><CODE>syncSpi()</CODE></A> 和 <A HREF="AbstractPreferences.html#flushSpi()"><CODE>flushSpi()</CODE></A>。所有的具体方法都精确指定它们如何在这些 SPI 方法上实现。如果出于某种考虑(如性能)对默认实现不满意,则实现者可能决定重写一个或多个具体方法。<p>SPI 方法按异常行为可分为三个组。<tt>getSpi</tt> 方法应该永远不抛出异常,但是对性能丝毫不会产生影响,因为 <A HREF="AbstractPreferences.html#get(java.lang.String, java.lang.String)"><CODE>get(String,String)</CODE></A> 会拦截此方法所抛出的任何异常,并对调用方返回指定的默认值。<tt>removeNodeSpi、keysSpi、childrenNamesSpi、syncSpi</tt> 和 <tt>flushSpi</tt> 方法被指定抛出 <A HREF="BackingStoreException.html" title="java.util.prefs 中的类"><CODE>BackingStoreException</CODE></A>;如果实现无法执行操作,则需要抛出此经过检查的异常。该异常向外传播,导致相应的 API 方法失败。<p>其余的 SPI 方法 <A HREF="AbstractPreferences.html#putSpi(java.lang.String, java.lang.String)"><CODE>putSpi(String,String)</CODE></A>、<A HREF="AbstractPreferences.html#removeSpi(java.lang.String)"><CODE>removeSpi(String)</CODE></A> 和 <A HREF="AbstractPreferences.html#childSpi(java.lang.String)"><CODE>childSpi(String)</CODE></A> 具有更加复杂的异常行为。未指定它们抛出 <tt>BackingStoreException</tt>,因为即使内部存储不可用,它们通常也遵守其协定。之所以这样是因为它们不返回任何信息,并且在进行对 {Preferences#flush()} 或 {Preferences#sync()} 的后续调用之前,不要求其结果是持久的。一般而言,这些 SPI 方法不应抛出异常。在某些实现中,可能存在这些调用甚至无法对后续处理的请求操作进行排队的情形。即使在这些情形下,最好的做法也是忽略该调用并返回,而不是抛出异常。但是,在这些情形下,所有 <tt>flush()</tt> 和 <tt>sync</tt> 的后续调用应该返回 <tt>false</tt>,因为返回 <tt>true</tt> 意味着以前的所有操作都已成功地成为持久性操作。<p>有一种情况下 <tt>putSpi、removeSpi 和 childSpi</tt> <i>应该</i> 抛出异常:如果调用方在基础操作系统上不具备执行请求操作的足够权限。例如,如果非特权用户尝试修改系统首选项,则在大多数系统上都会发生这种情况。(这要求特权随实现而变化。在有些实现中,需要修改文件系统中某些目录内容的特权;而在另外一些实现中,则需要修改注册表中某些键的内容。)在上述任何情形下,通常让程序继续执行并不合乎需要,就好像这些操作在以后会成为持久操作一样。虽然在这些情形下不要求实现抛出异常,但还是鼓励这样做。<A HREF="../../lang/SecurityException.html" title="java.lang 中的类"><CODE>SecurityException</CODE></A> 就是合适的选择。<p>大多数 SPI 方法都要求实现在首选项节点上读取或写入信息。实现者需要注意一种情况,即另一个 VM 当前可能已经从内部存储删除了此节点。如果该节点已经删除了,则实现有责任重新创建它。<p>实现注意事项:在 Sun 的默认 <tt>Preferences</tt> 实现中,用户的身份是从基础操作系统继承的,在虚拟机的生命周期中不能更改。在服务器端的 <tt>Preferences</tt> 实现中,用户身份可以随请求而更改,并通过使用静态 <A HREF="../../lang/ThreadLocal.html" title="java.lang 中的类"><CODE>ThreadLocal</CODE></A> 实例隐式传递给 <tt>Preferences</tt> 方法。<i>大力</i> 提倡这种实现的设计者在访问首选项时确定用户(例如,使用 <A HREF="AbstractPreferences.html#get(java.lang.String, java.lang.String)"><CODE>get(String,String)</CODE></A> 或 <A HREF="AbstractPreferences.html#put(java.lang.String, java.lang.String)"><CODE>put(String,String)</CODE></A> 方法),而不是将用户与每个 <tt>Preferences</tt> 实例永久关联。后一种行为与通常的 <tt>Preferences</tt> 用法有冲突,将带来很大的混乱。<P><P><DL><DT><B>从以下版本开始:</B></DT>  <DD>1.4</DD><DT><B>另请参见:</B><DD><A HREF="Preferences.html" title="java.util.prefs 中的类"><CODE>Preferences</CODE></A></DL><HR><P><!-- =========== FIELD SUMMARY =========== --><A NAME="field_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>字段摘要</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>protected &nbsp;<A HREF="../../lang/Object.html" title="java.lang 中的类">Object</A></CODE></FONT></TD><TD><CODE><B><A HREF="AbstractPreferences.html#lock">lock</A></B></CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用其监视器锁定此节点的对象。</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>protected &nbsp;boolean</CODE></FONT></TD><TD><CODE><B><A HREF="AbstractPreferences.html#newNode">newNode</A></B></CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;如果在创建此对象前内部存储中不存在此节点,则该字段为 <tt>true</tt>。</TD></TR></TABLE>&nbsp;<A NAME="fields_inherited_from_class_java.util.prefs.Preferences"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"><TH ALIGN="left"><B>从类 java.util.prefs.<A HREF="Preferences.html" title="java.util.prefs 中的类">Preferences</A> 继承的字段</B></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="Preferences.html#MAX_KEY_LENGTH">MAX_KEY_LENGTH</A>, <A HREF="Preferences.html#MAX_NAME_LENGTH">MAX_NAME_LENGTH</A>, <A HREF="Preferences.html#MAX_VALUE_LENGTH">MAX_VALUE_LENGTH</A></CODE></TD></TR></TABLE>&nbsp;<!-- ======== CONSTRUCTOR SUMMARY ======== --><A NAME="constructor_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"><B>构造方法摘要</B></FONT></TH></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>protected </CODE></FONT></TD><TD><CODE><B><A HREF="AbstractPreferences.html#AbstractPreferences(java.util.prefs.AbstractPreferences, java.lang.String)">AbstractPreferences</A></B>(<A HREF="AbstractPreferences.html" title="java.util.prefs 中的类">AbstractPreferences</A>&nbsp;parent,                    <A HREF="../../lang/String.html" title="java.lang 中的类">String</A>&nbsp;name)</CODE><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用指定的父节点和与其父节点相关的指定名称创建首选项节点。</TD></TR></TABLE>&nbsp;<!-- ========== METHOD SUMMARY =========== --><A NAME="method_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">

⌨️ 快捷键说明

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