OPAL:手动创建带注释的方法

OPAL: Manually creating an annotated method

在OPAL框架中,是否可以手动创建注解方法?

我目前有以下代码:

Method(0, "signaturePolymorphicMethod",
        MethodDescriptor(ObjectType("java/lang/Object"), VoidType), Seq())

我想添加注释

@java.lang.invoke.MethodHandle$PolymorphicSignature

这个方法。我该怎么做?

通常使用 JVM 的通用 "Attributes" 机制存储注释。

在这种情况下,注释是具有 "Runtime Retention Policy" 的 MethodHandle 的非 public 内部 class。因此,要将方法标记为具有 "Polymorphic Signature",必须将 RuntimeVisibibleAnnotations_Attribute 添加到相应方法的属性 table。但是,鉴于注释的可见性仅限于 java.lang.invoke 包,这(在这种特定情况下)可能很少有用。不过,可以在相应的包中查询方法