2016-06-02 10 views
3

eine AnmerkungWie finde ich Methoden mit einer Annotation in einer Klasse?

@Target(AnnotationTarget.FUNCTION) 
@Retention(AnnotationRetention.RUNTIME) 
annotation class MyAnnotation 

So finden Sie Methoden mit dieser Anmerkung gegeben?

Dies ist, wie weit habe ich:

val cls = myObject.javaClass.kotlin 
val found = cls.memberFunctions.filter { it.annotations.contains(???) } 

Antwort

7

Die Anmerkung wird die Instanz Ihrer MyAnnotation Klasse sein. Daher müssen Sie nur Folgendes tun:

cls.memberFunctions.filter { it.annotations.any { anno -> anno is MyAnnotation } } 
Verwandte Themen