2013-12-01 4 views
0

Это аналогичный вопрос Use an annotation as a typed method parameter, но этот вопрос, если для языка программирования Groovy.Использование аннотации в качестве параметра метода

В Groovy можно использовать аннотацию класса как типизированный параметр метода. Например - это ваша аннотация

@Target(ElementType.TYPE) 
@Retention(RetentionPolicy.RUNTIME) 
public @interface Entity { 
} 

затем

@Entity 
public class Car { 
... 
} 

, а затем сделать

interface Persister { 
    void persist(Entity entity); 
} 

??

Thanks

ответ

1

Да. Вы можете получить экземпляр класса Entity при его получении от какого-либо члена:

import java.lang.annotation.* 

@Target(ElementType.TYPE) 
@Retention(RetentionPolicy.RUNTIME) 
@interface Entity { } 


@Entity 
class Car { } 


def persist(Entity entity) { 
    println "entity=$entity" 
} 


car = new Car() 
entity = car.class.getAnnotation(Entity) 
persist entity // this will print "[email protected]()" 
Смежные вопросы