OPAL: создание аннотированного метода вручную

Можно ли в рамках OPAL вручную создать аннотированный метод?

В настоящее время у меня есть следующий код:

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

и я хочу добавить аннотацию

@java.lang.invoke.MethodHandle$PolymorphicSignature

к этому методу. Как я могу это сделать?

1 ответ

Решение

Аннотации обычно хранятся с использованием общего механизма "Атрибутов" JVM.

В этом случае аннотация является закрытым внутренним классом MethodHandle с "политикой хранения во время выполнения". Следовательно, чтобы пометить метод как имеющий "Полиморфную подпись", необходимо добавить RuntimeVisibibleAnnotations_Attribute в таблицу атрибутов соответствующего метода. Однако, учитывая, что видимость аннотации ограничена пакетом java.lang.invoke, это (в данном конкретном случае), вероятно, редко полезно. Тем не менее, можно запросить методы в соответствующем пакете

Другие вопросы по тегам