如何获取方法参数的名称和值?
方法代码中有没有可能获取方法参数的名字? 任何人都可以显示它的例子吗?
我目前只找到这个解决方案,但不喜欢它..:
class Greeter() { fun greet(name: String) { val c = Greeter::class; for (m in c.memberFunctions) { if (m.name == "greet") { val p = m.parameters println(p.toString()) } } println("Hello, ${name}"); } } fun main(args: Array<String>) { Greeter().greet("UserName") }
更新:我发现了另一个解决方案,但现在我有一个更多的问题:如何获得paramName,ParamValue函数的问候?
class Greeter() { fun greet(name: String) { val p = Greeter::greet.parameters println(p.toString()) println("Hello, ${name}"); } } fun main(args: Array<String>) { Greeter().greet("UserName") }
参数名称通过KParameter.name
属性可用:
class Greeter() { fun greet(name: String) { val p = Greeter::greet.parameters println("Hello, ${p[0].name}"); } }
另一方面,参数值无法在JVM上轻松获得。
- 当我添加将RealmObject扩展到我的项目的ChatInformation kotlin类时,无法建立项目,错误在哪里?
- 对来自Kotlin中的MutableList的数据进行排序
- KFunction1中的kotlin泛型
- 如何使重写单一表达式函数的返回类型为Unit?
- 为什么Kotlin在运算符重载之外使用运算符修饰符?
- 错误:未找到注释处理器'__gen.AnnotationProcessorWrapper_debug_android_databinding_annotationprocessor_ProcessDataBinding'
- Kotlin和Android数据绑定(BuildTools 2.0.0)
- 在kotlin测试
- Kotlin上需要NotNull吗?