Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用反射获取Kotlin中带注释函数的列表_Kotlin_Reflection - Fatal编程技术网

使用反射获取Kotlin中带注释函数的列表

使用反射获取Kotlin中带注释函数的列表,kotlin,reflection,Kotlin,Reflection,我是Kotlin的新手,我想做以下工作: 用注释对某些函数进行注释,例如“可执行” 在运行时,获取带有此注释的所有函数 检查批注上的属性,如果该属性与条件匹配,则调用该函数 我有以下代码 annotation class Executable(val name : String) @Executable("doSomething") fun stepDoSomething (param1 : String) { println("I am a step that does someth

我是Kotlin的新手,我想做以下工作:

  • 用注释对某些函数进行注释,例如“可执行”

  • 在运行时,获取带有此注释的所有函数

  • 检查批注上的属性,如果该属性与条件匹配,则调用该函数
  • 我有以下代码

    annotation class Executable(val name : String)
    
    @Executable("doSomething")
    fun stepDoSomething (param1 : String) {
        println("I am a step that does something! I print $param1")
    }
    
    然而,我不清楚如何在运行时检索带有可执行注释的所有函数并检查它们


    谢谢你的帮助

    要实现这一点,您需要使用类路径扫描程序,例如。类路径扫描器提供API来根据各种标准查找类,例如类所在的包、它们实现的接口或它们具有的注释。对于ClassGraph,有一个
    getClassesWithMethodAnnotation(字符串名称)
    方法。一旦拥有了所有这些类,就可以使用普通反射来查找这些类中的哪些方法具有要查找的特定注释,并检查注释的属性。是如何创建注释和使用反射检查注释的良好概述

    非常感谢!我能用它工作