Kotlin: @ Игнорирует свойства, сохраняемые Sugar ORM

В моем приложении для Android я использую Kotlin совместно с SugarORM, и я столкнулся с проблемой, пытаясь предотвратить сохранение некоторых свойств. Как ни странно, аннотация @com.orm.dsl.Ignore , по-видимому, игнорируется при использовании в классах Котлина.

В качестве примера,

1) давайте объявим две, казалось бы, идентичные модели:

 // JavaUser.java public class JavaUser extends SugarRecord { public String login = "login"; @Ignore public String password = "password"; } // KotlinUser.kt class KotlinUser : SugarRecord() { var login: String = "login" @Ignore var password: String = "password" } 

2) сохраняют свои инстанции

 JavaUser().save() KotlinUser().save() 

3) и взгляните на то, что на самом деле сохраняется:

 sqlite> select * from java_user; ID|LOGIN 1|login sqlite> select * from kotlin_user; ID|LOGIN|PASSWORD 1|login|password 

Я понимаю, что это может быть связано с обработкой аннотации Kotlin, но я просто не уверен, как я могу это сделать. Любые предложения приветствуются.

Основное различие между вашим кодом Java и Kotlin заключается в том, что в Java вы используете поля, но в Kotlin вы используете свойства. См. Раздел « Свойства и поля » в документации.

Вы можете попробовать следующие решения и посмотреть, что лучше всего работает с SugarORM:

1. Создайте поля для публикации Kotlin:

 @Ignore @JvmField var password: String = "password" 

2. Примените аннотацию к закрытому окну:

 @field:Ignore var password: String = "password" 
Intereting Posts
Опция UnManaged недоступна в консоли разработчика Google Play Любое решение для прошивки Samsung Galaxy ICS 4.0.3 LPQ, отправляющее два текстовых сообщения? Как получить доступ к локальному хосту от эмулятора Android от Genymotion? Java.io.IOException: setDataSource failed: status = 0x80000000 Android: проблема с стилем пути в Region.Op Как реализовать onConnectionFailed () и onDisconnected () для службы определения местоположения Выполнение не выполнено для задачи: app: compileDebugJavaWithJavac в Android Studio Карта Google, называемая внутри фрагмента, возвращает null Android: как разместить анимированное изображение внутри EditText, которое мы можем показать и скрыть Uncaught ReferenceError: AFMA_getSdkConstants не определен Неверное уведомление отправлено из пакета, не удалось развернуть RemoteViews Специальное диалоговое окно Android, например «Быстрый контакт» Начало и конец приложения для Android-приложения Android: fitsSystemWindows не работает на панели инструментов Фрагмент, реализующий AsyncTask и Listview в android