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, это (в данном конкретном случае), вероятно, редко полезно. Тем не менее, можно запросить методы в соответствующем пакете