gpt4 book ai didi

kotlin - 如何获取方法参数的名称和值?

转载 作者:行者123 更新时间:2023-12-02 07:25:42 25 4
gpt4 key购买 nike

是否可以在方法代码中获取方法参数的名称?谁能举个例子吗?

我目前只找到了这个解决方案,但不喜欢它......:

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")
}

更新:我找到了另一种解决方案,但现在我还有一个问题:如何在函数greet中获取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 上轻松地通过反射方式获取。

关于kotlin - 如何获取方法参数的名称和值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33604619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com