¿Cómo get nombres y valores de los parameters del método?

¿Hay posibilidad de get nombres de los parameters del método dentro del código del método? ¿Alguien puede mostrar un ejemplo?

Solo encontré esta solución en este momento, pero no me gusta …:

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

actualización: encontré otra solución, pero ahora tengo una pregunta más: ¿cómo get pares de ParamName, ParamValue en la function saludar?

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