Module  jdk.dynalink
软件包  jdk.dynalink.beans

Interface MissingMemberHandlerFactory

  • Functional Interface:
    这是一个功能界面,因此可以用作lambda表达式或方法引用的赋值对象。


    @FunctionalInterface
    public interface MissingMemberHandlerFactory
    创建方法句柄的工厂,用于链接缺少的成员行为BeansLinker BeansLinker将这些方法句柄链接到指定GET_*SET_* StandardOperation的链接请求的被保护的调用中,当确定或可能丢失请求的成员(属性,方法或元素)时。 它们将链接到named和未命名的操作。 实现者必须确保返回的方法句柄的参数类型与链接请求中描述的调用站点的参数类型相匹配。 返回类型可以不同,但允许DynamicLinkerFactory.setPrelinkTransformer(jdk.dynalink.linker.GuardedInvocationTransformer)延迟返回类型转换}。 如果默认行为足够,则允许返回null的方法句柄。

    默认缺少成员行为

    当一个BeansLinker配置没有缺少的成员处理程序工厂,或工厂返回null为特定的处理程序创建调用,使用默认行为。 默认行为是从null返回null ,当链接时可以确定链接的操作永远不会解决现有的成员。 这使DynamicLinker尝试下一个链接器,如果有一个,或最终失败的链接请求与NoSuchDynamicMethodException 对于其他情况(通常所有未命名的成员操作以及收集元素上的大多数命名操作), BeansLinker将生成条件链接,在运行时调用时返回null ,名称与getter的任何成员不匹配,并且默认忽略传递的值为设定者。

    实施异常抛出行为

    请注意,如果缺少成员的操作的语言特定行为是抛出异常,那么工厂应该产生一个方法句柄,在调用时抛出异常,并且不能将异常本身作为缺少成员的链接通常是有条件的。
    另请参见:
    BeansLinker(MissingMemberHandlerFactory)
    • 方法详细信息

      • createMissingMemberHandler

        MethodHandle createMissingMemberHandler​(LinkRequest linkRequest,
                                                LinkerServices linkerServices)
                                         throws 异常
        返回适用于为特定链接请求实现丢失成员行为的方法句柄。 详见课程说明。
        参数
        linkRequest - 当前链接请求
        linkerServices - 当前链接服务
        结果
        如果缺少操作寻址的属性,元素或方法,则可以调用方法句柄。 返回值可以为null。
        异常
        异常 - 如果由于任何原因操作失败 请遵守用于实现异常抛出丢失成员行为的类文档注释。