¿Cómo especifico que un campo encuadrado puede ser anulable en mi código de migration de Realm?

Estoy usando Kotlin y quiero agregar un nuevo campo a un RealmObject y ese campo puede ser anulable. Esto es lo que tengo en mi migration:

 val schema = realm.schema.get(ZOLA_NOTIFICATION) if (!(schema?.hasField("agentId") ?: false)) { schema.addField("agentId", Long::class.java) } 

Sin embargo, recibo un post de error cuando se ejecuta esta migration:

 Non-fatal Exception: io.realm.exceptions.RealmMigrationNeededException Field 'agentId' does not support null values in the existing Realm file. Either set @Requinetworking, use the primitive type for field 'agentId' or migrate using RealmObjectSchema.setNullable(). 

¿Cómo especifico que Long::class.java debería ser el tipo anulable en el código de migration?

Desafortunadamente,

 Long::class.java // kotlin 

es equivalente a

 long.class // java Long::class.javaPrimitiveType // kotlin 

Pero lo que necesita agregar para el nulo Long in Realm es

 Long.class // java 

Entonces necesitas usar

 Long::class.javaObjectType // Long.class 

En la migration, puede convertir un campo obligatorio en un campo que RealmObjectSchema.setNullable(String field, boolean nullable) utilizando el RealmObjectSchema.setNullable(String field, boolean nullable) .

  • Retrofit + Deserialization GSON + Relación de reino
  • La aplicación del complemento Realm en el proyecto Kotlin produce un error de compilation
  • El tamaño de RealmResults es cero
  • kotlin - reino y package
  • Error al configurar el reino con kotlin
  • Cómo arreglar "La característica no es parte del esquema para este Reino" en Kotlin Realm Extention
  • Kotlin - Use Realm Module en android
  • ¿Cambiar notifications en Realm para objects internos?
  • La notificación de consulta de dominio no se activa con Kotlin
  • Uso perezoso de Kotlin
  • la demostración del reino de Kotlin no se puede ejecutar