2016-07-10 3 views
0

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