Funciones de extensión LocalDateTime y Smart Casting

Intenté y fallé (o lo logré parcialmente) implementar las funciones de extensión para LocalDateTime

aquí está mi bash:

 fun LocalDateTime.isNotBefore(other: ChronoLocalDateTime<*>) = !isBefore(other) 

El problema es que IntelliJ se queja de que no puede smartcast mi variable curTime (que es un val y LocalDateTime? )

isNotBefore(curTime) tendrá una línea isNotBefore(curTime) roja y se quejará de que no puede smartcast. ¡Así que debo usarlo !!

no se preocupe si no puede replicarlo, tengo un montón de código: estas son las partes importantes.

La diferencia es que un método LocalDateTime regular como isBefore() no necesita el smartcast en este punto.

Entonces esto significa que no implementé algo correctamente en mi function de extensión.

¿Alguien sabe cómo puedo arreglar la function de extensión para que no tenga que usarla !! ?

Si echa un vistazo más de cerca a la firma isBefore firma, espera que ChronoLocalDateTime<*>! tipo. Esta es la notación de kotlin para un tipo de plataforma . Signo de exclamación significa que espera ChronoLocalDateTime<*> o ChronoLocalDateTime<*>? mientras que su método isNotBefore espera un tipo que no isNotBefore .

Si cambia su function de extensión para aceptar anulables, funcionará de la misma manera.

 fun LocalDateTime.isNotBefore(other: ChronoLocalDateTime<*>?) = !isBefore(other) 
  • Error de la aplicación IBM Bluemix Cloud Foundry SpringBoot kotlin
  • Daga 2 inyectando el model de vista de actividad en fragment
  • ¿Cómo entender una diversión con = en Kotlin?
  • Kotlin llama al método java con el argumento Clase <T>
  • ¿Cómo escalar dinámicamente el rebote de la stream de emisión de ráfagas?
  • Quiero poblar el adaptador de arrays de cada vista en el layout de un solo cuadro
  • El adaptador de enlace Picasso 'se ha filtrado una connection'
  • ¿Por qué los texts no cambian en actividad?
  • NullPointerException en Android Studio 3 Beta 1
  • socket de server que escucha en el cliente frente al service de votación para la aplicación de postría instantánea de Android
  • No se puede recibir un post de grupo usando smack