Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

385
Views
¿Por qué no puedo asignar un tipo anulable a Any en Kotlin?

¿Alguien puede explicar por qué es imposible hacer esto en Kotlin?

 val x :Int? = 123 val y :Any = x

Vengo del fondo .NET donde el tipo anulable se puede asignar al tipo de objeto, pero ¿en qué se diferencian?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Los tipos anulables no son subtipos de Any , pero son subtipos de Any? .

Any es solo una superclase de tipos que no aceptan valores NULL . Esto hace posible escribir código que requiere una instancia no nula de cualquier cosa y aún así beneficiarse de la seguridad del verificador de tipos (a diferencia de cuando se usa el Object de Java).

Aquí hay una imagen que puede ayudar:

ingrese la descripción de la imagen aquí

El siguiente código es un reemplazo válido del suyo:

 val x: Int? = 123 val y: Any? = x
over 4 years ago · Santiago Trujillo Report

0

De los documentos:

El sistema de tipos de Kotlin tiene como objetivo eliminar el peligro de las referencias nulas del código, también conocido como The Billion Dollar Mistake.

En Kotlin, el sistema de tipos distingue entre las referencias que pueden contener valores nulos (referencias anulables) y las que no (referencias no nulas).

Ejemplo:

 var a: String = "abc" a = null // compilation error var b: String? = "abc" //using `String?` allows you to assign null b = null // ok print(b)

Any es una clase igual que String , la única diferencia es que cada clase tiene Any como superclase. Pero lo anterior que escribí sobre NPE se aplica a todos los tipos en kotlin.

over 4 years ago · Santiago Trujillo Report

0

Sí. El requisito básico para la variable Kotlin es marcar si es anulable o no para evitar NPE.

Aquí en tu caso,

 var x: Int? = 123

se asigna como valor anulable con ? pero cuando lo asignó a Cualquier objeto, ¿se olvidó de agregar anulable? a cualquier objeto

así que var y: Any? = x

hará lo que estamos marcando anulable para y también.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!