Kotlin:Sugar ORM坚持了@忽略属性
在我的Android应用程序中,我正在使用Kotlin和SugarORM,并且遇到了一个问题,试图阻止某些属性被持久化。 具有讽刺意味的是,在Kotlin类中使用@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注释处理有关,但我只是不知道该如何去做。 任何建议是最受欢迎的。
- 登录到kotlin android studio的firebase
- Kotlin主要和次要建设者问题
- 如何在kotlin的片段类中初始化视图?
- Kotlin Android中的Observable无法从()运算符调用
- 如何在Kotlin中调用电话号码Android
Java和Kotlin代码之间的核心区别在于,在Java中使用字段,但在Kotlin中使用属性。 请参阅文档中的“ 属性和字段”部分。
您可以尝试以下解决方案,并查看SugarORM的最佳效果:
1.让Kotlin暴露字段:
@Ignore @JvmField var password: String = "password"
2.将您的注释应用于私人支持字段:
@field:Ignore var password: String = "password"
- 在Android Kotlin中创建类扩展AsyncTask而不泄漏上下文对象
- 用匕首在Kotlin中注入Generic类型2
- NoSuchMethodError:java.lang.Long.hashCode
- 是否有必要知道kotlin获得AAD(Associate Android Developer)认证?
- Android Studio执行失败的任务compilefreeDebugKotlin
- 图像存在,不为空,但我得到一个NullPointerException异常
- Kotlin智能转换不适用于LinearLayout.LayoutParams
- 未解决的参考:Kotlin中的findViewById
- 在Android Studio中找不到Dokka插件3