博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【译】ObjectBox官方文档(6)——ObjectBox与Kotlin
阅读量:7221 次
发布时间:2019-06-29

本文共 1348 字,大约阅读时间需要 4 分钟。

转载请注明出处 第一次翻译文档,水平有限,如有任何错误和不妥,望指正。此外如想知道与 RealmGreenDAO 的对比请查看这篇 官网: 官方示例:

ObjectBoxAndroid 平台上为 Kotlin 提供了完整的支持。这允许使用 Kotlin 类(常规类和data类)来创建实体。通过对 Kotlin 的支持,你可以高效地构建更快的应用程序。

配置

配置方式与 java 项目的配置相同,请参阅页面。此外,我们提供了一个很小的 Kotlin 扩展函数的依赖库。我们会对它持续更新,所以。只需将其添加到模块依赖项:

dependencies {    compile "io.objectbox:objectbox-android:$objectboxVersion"    compile "io.objectbox:objectbox-kotlin:$objectboxVersion"}复制代码

当您完成了Sync project,就可以在 Kotlin 中定义实体。

Kotlin实体

Kotlin,你应该这样定义ID属性:

@Id var id: Long = 0复制代码

ID 必须是一个var(不是val),因为 ObjectBoxput一个新实体后为其分配 ID。并且,ID 应该是基础数据类型的Long,同时,赋值为特殊值0,将它标记为一个新的实体。

所以一个简单的数据类是这样的:

@Entitydata class Note(        @Id var id: Long = 0,        val text: String)复制代码

实体类的构造器

ObjectBox需要调用构造函数来创建对象。它将选择下面其中一种:

  • all-args 构造函数: 如果 ObjectBox 找到一个与所有持久化属性匹配的构造函数(类型和名称匹配),它将优先调用它。
  • no-args 构造函数: 如果没有找到 all-args 构造函数,ObjectBox 则会调用 no-args (默认)构造函数初始化字段。

注意:Kotlindata类通常会提供兼容的 all-args 构造函数。但是,如果是临时属性或着映射关系属性是构造函数的一部分,则ObjectBox不能使用它。

在Kotlin中定义映射关系

Kotlin中定义关系非常类似于标准Java的。在Kotlin中,通常会使用一个lateinit修饰符来表示关系属性。如上述连接所述“初始化魔术”也是相同的(这句翻译相当的别扭,不是很清楚它指的什么,希望有人能纠正)。

示例:

@Entityclass Order {    @Id var id: Long = 0     lateinit var customer: ToOne
} @Entityclass Customer { @Id var id: Long = 0 @Backlink lateinit var orders: List
}复制代码

转载于:https://juejin.im/post/5a31d2506fb9a0451f30f27b

你可能感兴趣的文章
django 使用mysql数据库的流程
查看>>
Android系统移植与调试之------->如何修改Android设备的默认休眠时间
查看>>
我的Android进阶之旅------>Java文件大小转换工具类 (B,KB,MB,GB,TB,PB之间的大小转换)...
查看>>
uboot 传递的参数 mtdparts
查看>>
六种排序算法C语言版(上)
查看>>
292. Nim Game(easy)
查看>>
ERROR 1786 (HY000)
查看>>
Kubernetes 学习7 Pod控制器应用进阶2
查看>>
Python字符串相加以及字符串格式化
查看>>
11.08 轮换行值
查看>>
AIX lsof 命令
查看>>
微信小程序个人项目(node.js+koa2+koa-router+middleware+mysql+node-mysql-promise+axios)
查看>>
C#温故而知新学习系列之面向对象编程—类的数据成员(三)
查看>>
列表字典推导式
查看>>
HDOJ 1228 A+B(map水题)
查看>>
intellij IDEA 导入包的方法·
查看>>
Python之路番外:PYTHON基本数据类型和小知识点
查看>>
转:matlab+spider+weka
查看>>
步步为营 .NET 设计模式学习笔记 十五、Composite(组合模式)
查看>>
angular通过路由实现跳转 resource加载数据
查看>>