模块  java.naming
软件包  javax.naming.spi

Interface DirObjectFactory

    • 方法详细信息

      • getObjectInstance

        Object getObjectInstance​(Object obj,                         Name name,                         Context nameCtx,                         Hashtable<?,​?> environment,                         Attributes attrs)                  throws 异常
        使用位置或引用信息以及指定的属性创建对象。

        使用environment提供此对象的特殊要求。 这种环境属性的一个例子是用户身份信息。

        DirectoryManager.getObjectInstance()先后加载对象工厂。 如果它遇到DirObjectFactory ,它将调用DirObjectFactory.getObjectInstance() ; 否则,它调用ObjectFactory.getObjectInstance() 它会在工厂生成非空答案之前执行此操作。

        当对象工厂抛出异常时,异常将传递给调用程序DirectoryManager.getObjectInstance() 搜索可能产生非空答案的其他工厂将停止。 如果对象工厂确定它是唯一的预期工厂并且不应该尝试其他对象工厂,则它应该只抛出异常。 如果此工厂无法使用提供的参数创建对象,则应返回null。

        由于DirObjectFactory扩展了ObjectFactory ,它实际上有两个getObjectInstance()方法,其中一个方法与attributes参数不同。 给定一个实现DirObjectFactory的工厂, DirectoryManager.getObjectInstance()将仅使用接受attributes参数的方法,而NamingManager.getObjectInstance()将仅使用不接受attributes参数的方法。

        有关描述URL上下文工厂和对等工厂的其他属性,请参阅ObjectFactory ,这些属性同样适用于DirObjectFactory

        nameattrsenvironment参数由调用者所有。 实现不会修改这些对象或保留对它们的引用,尽管它可能会保留对克隆或副本的引用。

        参数
        obj - 包含可用于创建对象的位置或引用信息的可能为null的对象。
        name - 此对象相对于 nameCtx的名称,如果未指定名称,则为null。
        nameCtx - 指定 name参数的上下文,如果 name相对于默认初始上下文, name null。
        environment - 用于创建对象的可能为null的环境。
        attrs - 包含obj属性的可能为null的属性。 attrs可能不一定具有obj的全部属性。 如果对象工厂需要更多属性,则需要使用objnamenameCtx来获取它。 工厂不得修改attrs。
        结果
        创建的对象; 如果无法创建对象,则返回null。
        异常
        异常 - 如果此对象工厂在尝试创建对象时遇到异常,并且不尝试其他对象工厂。
        另请参见:
        DirectoryManager.getObjectInstance(java.lang.Object, javax.naming.Name, javax.naming.Context, java.util.Hashtable<?, ?>, javax.naming.directory.Attributes)NamingManager.getURLContext(java.lang.String, java.util.Hashtable<?, ?>)