Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

176
Visualizações
Tipo de parámetro de verificación de Kotlin

Cuando trabajo con el reflejo de Java, puedo hacer algo como esto: method.getParameterTypes()[i] que me da el tipo de parámetro i ( Class ).

¿Cómo puedo lograr esto usando KCallable de Kotlin? Intenté hacer algo como esto: callable.parameters[i].type pero lo único que encontré fue type.javaType pero devuelve Type que no me ayudó en absoluto. También probé parameters[i].kind pero eso no me ayudó en absoluto.

¿Cómo puedo hacer method.getParameterTypes() de Java usando KCallable de Kotlin?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Si está utilizando Kotlin 1.1+,

1) Tiene kotlin-reflect , luego debe usar callable.parameters[i].type.jvmErasure.java .

2) No tienes kotlin-reflect , luego ve a 3)

Si está utilizando una versión anterior, le sugiero encarecidamente que transfiera su código a 1.1. Si por alguna razón tienes que ceñirte al anterior, pasa al 3),

3) Primero debe agregar este fragmento de código, que calcula el tipo sin procesar de un java.lang.reflect.Type dado:

 import java.lang.reflect.* val Type.rawtype: Class<*> get() = when (this) { is Class<*> -> this is ParameterizedType -> rawType as Class<*> is GenericArrayType -> genericComponentType.rawtype.asArrayType() is TypeVariable<*> -> this.bounds[0]?.rawtype ?: Any::class.java // <--- A bug of smart cast here, forcing the use of "this." is WildcardType -> lowerBounds[0].rawtype else -> throw AssertionError("Unexpected type of Type: " + javaClass) } fun Class<*>.asArrayType() = java.lang.reflect.Array.newInstance(this, 0).javaClass

luego simplemente llame a callable.parameters[i].type.javaType.rawtype .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda