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

275
Visualizações
Cómo verificar si una variable es una matriz en Kotlin

mi codigo kotlin es

 val t = cameraController.getCharacteristicInfo(myDataset[position]) if (t is Array<*>) { holder.keyValue.text = Arrays.toString(t) } else { holder.keyValue.text = t.toString() }

No está funcionando. if (t is Array<*>) siempre devuelve false .

El código de la función getCharacteristicInfo es:

 public <T> T getCharacteristicInfo(CameraCharacteristics.Key<T> key) { return characteristics.get(key); }

Es una función para obtener las características de la cámara.

¿Cómo verificar correctamente si una variable es una matriz?

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

0

t is Array<*> es verdadero para matrices de objetos ( Array<Whatever> ), pero falso para matrices primitivas ( IntArray etc.). Así que probablemente quieras

 holder.keyValue.text = when(val t = cameraController.getCharacteristicInfo(myDataset[position])) { is Array<*> -> Arrays.toString(t) is IntArray -> Arrays.toString(t) ... else -> t.toString() }

(si t se usa afuera en otro lugar, simplemente mueva la asignación afuera).

Tenga en cuenta que se trata de sobrecargas diferentes Arrays.toString , por lo que no podría escribir

 is Array<*>, is IntArray, ... -> Arrays.toString(t)

incluso si los lanzamientos inteligentes estuvieran disponibles en esta situación (no lo están).

over 4 years ago · Santiago Trujillo Relatório

0

Enfrentó el mismo problema y usó isArray of the Class :

 >>> arrayOf("a","b","c")::class.java.isArray res1: kotlin.Boolean = true >>> IntArray(1)::class.java.isArray res2: kotlin.Boolean = true >>> Array<String>(1) { "a" }::class.java.isArray res3: kotlin.Boolean = true >>> Any::class.java.isArray res4: kotlin.Boolean = false

NOTA: Es posible que no esté disponible si su objetivo no es JVM.

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