mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-07-05 08:12:43 +08:00
152 lines
10 KiB
HTML
152 lines
10 KiB
HTML
<div class="header">
|
||
<div class="subTitle">
|
||
compact3
|
||
</div>
|
||
<div class="subTitle">
|
||
javax.naming.spi
|
||
</div>
|
||
<h2 class="title" title="Interface DirObjectFactory">Interface DirObjectFactory</h2>
|
||
</div><div class="contentContainer">
|
||
<div class="description">
|
||
<ul class="blockList">
|
||
<li class="blockList">
|
||
<dl>
|
||
<dt>
|
||
All Superinterfaces:
|
||
</dt>
|
||
<dd>
|
||
<span><a href="../../../javax/naming/spi/ObjectFactory.html" title="javax.naming.spi中的接口">ObjectFactory</a></span>
|
||
</dd>
|
||
</dl>
|
||
<hr/> <br/> <pre>public interface <span class="typeNameLabel">DirObjectFactory</span>
|
||
extends <a href="../../../javax/naming/spi/ObjectFactory.html" title="interface in javax.naming.spi">ObjectFactory</a></pre>
|
||
<div class="block">
|
||
<span>该接口代表一个用于创建给定对象的对象的工厂,以及关于该对象的属性。</span>
|
||
<p> <span>JNDI框架允许通过<em>对象工厂动态</em>加载<em>对象实现</em> 。</span> <span>详见<tt>ObjectFactory</tt> 。</span> </p>
|
||
<p> <span>A <tt>DirObjectFactory</tt>通过允许向<tt>getObjectInstance()</tt>方法提供<tt>Attributes</tt>实例来扩展<tt>ObjectFactory</tt> 。</span> <span><tt>DirObjectFactory</tt>实现旨在由<tt>DirContext</tt>服务提供商使用。</span> <span>服务提供商除了从目录中读取一个对象之外,可能已经具有对象工厂检查工厂是否应该处理该对象的属性。</span> <span>例如,LDAP风格的服务提供商可能已经读取了该对象的“objectclass”。</span> <span>CORBA对象工厂可能只对具有“objectclass = corbaObject”的LDAP条目感兴趣。</span> <span>通过使用LDAP服务提供商提供的属性,CORBA对象工厂可以快速消除不必担心的对象,非CORBA对象工厂可以快速消除与CORBA相关的LDAP条目。</span> </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="simpleTagLabel">从以下版本开始:</span>
|
||
</dt>
|
||
<dd>
|
||
1.3
|
||
</dd>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<span><a href="../../../javax/naming/spi/NamingManager.html#getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-"><code>NamingManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>)</code></a> , <a href="../../../javax/naming/spi/DirectoryManager.html#getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-javax.naming.directory.Attributes-"><code>DirectoryManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)</code></a> , <a href="../../../javax/naming/spi/ObjectFactory.html" title="javax.naming.spi中的接口"><code>ObjectFactory</code></a></span>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul>
|
||
</div>
|
||
<div class="summary">
|
||
<ul class="blockList">
|
||
<li class="blockList">
|
||
<!-- ========== METHOD SUMMARY =========== -->
|
||
<ul class="blockList">
|
||
<li class="blockList"><a name="method.summary">
|
||
<!-- --> </a> <h3>方法摘要</h3>
|
||
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
|
||
<caption>
|
||
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
|
||
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
|
||
<span class="tableTab" id="t3"><span><a href="javascript:show(4);">抽象方法</a></span><span class="tabEnd"> </span></span>
|
||
</caption>
|
||
<tbody>
|
||
<tr>
|
||
<th class="colFirst" scope="col">Modifier and Type</th>
|
||
<th class="colLast" scope="col">Method and Description</th>
|
||
</tr>
|
||
<tr class="altColor" id="i0">
|
||
<td class="colFirst"><code><a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/spi/DirObjectFactory.html#getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-javax.naming.directory.Attributes-">getObjectInstance</a></span>(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> obj, <a href="../../../javax/naming/Name.html" title="interface in javax.naming">Name</a> name, <a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a> nameCtx, <a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a><?,?> environment, <a href="../../../javax/naming/directory/Attributes.html" title="interface in javax.naming.directory">Attributes</a> attrs)</code>
|
||
<div class="block">
|
||
使用位置或参考信息和指定的属性创建对象。
|
||
</div> </td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<ul class="blockList">
|
||
<li class="blockList"><a name="methods.inherited.from.class.javax.naming.spi.ObjectFactory">
|
||
<!-- --> </a> <h3>Methods inherited from interface javax.naming.spi.<a href="../../../javax/naming/spi/ObjectFactory.html" title="interface in javax.naming.spi">ObjectFactory</a></h3> <code><a href="../../../javax/naming/spi/ObjectFactory.html#getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-">getObjectInstance</a></code></li>
|
||
</ul> </li>
|
||
</ul> </li>
|
||
</ul>
|
||
</div>
|
||
<div class="details">
|
||
<ul class="blockList">
|
||
<li class="blockList">
|
||
<!-- ============ METHOD DETAIL ========== -->
|
||
<ul class="blockList">
|
||
<li class="blockList"><a name="method.detail">
|
||
<!-- --> </a> <h3>方法详细信息</h3> <a name="getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-javax.naming.directory.Attributes-">
|
||
<!-- --> </a>
|
||
<ul class="blockListLast">
|
||
<li class="blockList"> <h4>getObjectInstance</h4> <pre><a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> getObjectInstance(<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a> obj,
|
||
<a href="../../../javax/naming/Name.html" title="interface in javax.naming">Name</a> name,
|
||
<a href="../../../javax/naming/Context.html" title="interface in javax.naming">Context</a> nameCtx,
|
||
<a href="../../../java/util/Hashtable.html" title="class in java.util">Hashtable</a><?,?> environment,
|
||
<a href="../../../javax/naming/directory/Attributes.html" title="interface in javax.naming.directory">Attributes</a> attrs)
|
||
throws <a href="../../../java/lang/Exception.html" title="class in java.lang">异常</a></pre>
|
||
<div class="block">
|
||
<span>使用位置或参考信息和指定的属性创建对象。</span>
|
||
<p> <span>该对象的特殊要求是使用<code>environment</code>提供的。</span> <span>这样的环境属性的示例是用户身份信息。</span> </p>
|
||
<p> <span><tt>DirectoryManager.getObjectInstance()</tt>连续装载物件工厂。</span> <span>如果遇到<tt>DirObjectFactory</tt> ,它将调用<tt>DirObjectFactory.getObjectInstance()</tt> ;</span> <span>否则,它调用<tt>ObjectFactory.getObjectInstance()</tt> 。</span> <span>这样做直到工厂产生非空答案。</span> </p>
|
||
<p> <span>当对象工厂引发异常时,异常传递给<tt>DirectoryManager.getObjectInstance()</tt>的调用者。</span> <span>搜索可能产生非空答案的其他工厂停止。</span> <span>如果对象工厂确定它是唯一的预定工厂,并且没有其他对象工厂应该被尝试,那么对象工厂应该只抛出异常。</span> <span>如果此工厂无法使用提供的参数创建对象,则应返回null。</span> </p>
|
||
<p> <span>由于<tt>DirObjectFactory</tt>扩展为<tt>ObjectFactory</tt> ,它有效地具有两个<tt>getObjectInstance()</tt>方法,其中一个不同于attribute参数。</span> <span>给定一个实现<tt>DirObjectFactory</tt>的工厂, <tt>DirectoryManager.getObjectInstance()</tt>将只使用接受attributes参数的方法,而<tt>NamingManager.getObjectInstance()</tt>将只使用不接受attributes参数的方法。</span> </p>
|
||
<p> <span>请参阅<tt>ObjectFactory</tt> ,了解对象工厂的URL上下文工厂和其他属性,这些属性同样适用于<tt>DirObjectFactory</tt> 。</span> </p>
|
||
<p> <span>该<tt><tt>name,attrs</tt></tt>和<tt>environment</tt>参数由调用者所有。</span> <span>尽管它可能会保留对克隆或副本的引用,但实现不会修改这些对象或保留对它们的引用。</span> </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="paramLabel">参数</span>
|
||
</dt>
|
||
<dd>
|
||
<code>obj</code> - 可能包含可用于创建对象的位置或引用信息的空对象。
|
||
</dd>
|
||
<dd>
|
||
<code>name</code> - 相对于
|
||
<code>nameCtx</code>的此对象的名称,如果未指定名称,则为null。
|
||
</dd>
|
||
<dd>
|
||
<code>nameCtx</code> - 指定
|
||
<code>name</code>参数的上下文,如果
|
||
<code>name</code>相对于默认初始上下文,则为null。
|
||
</dd>
|
||
<dd>
|
||
<code>environment</code> - 用于创建对象的可能的空环境。
|
||
</dd>
|
||
<dd>
|
||
<span><code>attrs</code> -包含一些<tt>obj</tt>的属性的可能为null的属性。</span>
|
||
<span><tt>attrs</tt>不一定有所有<tt>obj</tt>的属性。</span>
|
||
<span>如果对象工厂需要更多属性,则需要使用<tt>obj</tt>或<tt>name</tt>和<tt>nameCtx</tt> 。</span>
|
||
<span>工厂不得修改attrs。</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
<span>创建对象</span>
|
||
<span>如果无法创建对象,则为null。</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="throwsLabel">异常</span>
|
||
</dt>
|
||
<dd>
|
||
<code><a href="../../../java/lang/Exception.html" title="class in java.lang">异常</a></code> - 如果此对象工厂在尝试创建对象时遇到异常,并且不会尝试其他对象工厂。
|
||
</dd>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../javax/naming/spi/DirectoryManager.html#getObjectInstance-java.lang.Object-javax.naming.Name-javax.naming.Context-java.util.Hashtable-javax.naming.directory.Attributes-"><code>DirectoryManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)</code></a> ,
|
||
<a href="../../../javax/naming/spi/NamingManager.html#getURLContext-java.lang.String-java.util.Hashtable-"><code>NamingManager.getURLContext(java.lang.String, java.util.Hashtable<?, ?>)</code></a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> </li>
|
||
</ul> </li>
|
||
</ul>
|
||
</div>
|
||
</div> |