当前位置: 首页 > 知识库问答 >
问题:

Android Kotlin Room实体数据类应该是var、val还是不在乎?

谯阳伯
2023-03-14

我试图保持传统,这就是为什么我最近几天在一个Android项目中重构一些Kotlin代码的原因。我查看了许多Room实体数据类示例,但仍然没有获得在Room上下文中使用val/var的最佳实践。我认为合适的方法应该是val,因为它位于持久层,应该创建关于这些实体的DTO(数据传输对象),这些实体可以修改。有人能保证或否认这个假设吗!?

共有1个答案

宋景福
2023-03-14

有点晚了,但可能有些人正在寻找答案。简而言之:没关系。当使用specify parameters val仅创建getter时,var为属性创建getter和setter。

 类似资料:
  • 我正在尝试将Spark Scala脚本(用编写)转换为Scala类、对象、方法(def)等。因此我为创建JAR。我使用Spark SQL进行了很多调用,它执行了很多关于时区的时间戳计算。我必须显式地设置以下配置(因为每个分布式节点可能配置了不同的默认时区),以确保我的时区对于该方法中任何Spark SQL函数调用(代码块)进行的任何后续Spark SQL时间戳操作始终为UTC。 该方法签名是否应该

  • 问题内容: 对象序列化逻辑(字段到XML或JSON名称和值的映射)应放在何处?在每个实体对象内部,或者进入仅涉及序列化的一组不同的类?还有其他与此问题相关的最佳做法吗? 例如: 有些人这样处理: 但是,如果我们还需要toXML(),toCSV(),toXYZ()保持该方向,则会创建受污染严重的代码,并破坏单一责任原则,即使使用单个toJson方法IMHO也已被打破。 另一个选择,这是我通常要做的:

  • 问题内容: 我当前正在创建一个EJB3数据访问类,以处理Java EE 6应用程序中的所有数据库操作。现在,由于Java EE 6提供了新的注释,所以我想知道EJB应该具有什么状态,或者它应该是无状态的。 让DAO成为会话Bean还是Bean 会更好?那呢 这些与DAO相关的选项之间有什么区别? 编辑: 我在完整的Java EE 6平台上使用Glassfish 3.0.1 问题答案: 最好让DAO

  • [Java Spring]目前,我正在使用MongoTemplate查询数据 > MongoTemplate-- mongoTemplate。查找(查询,实体) 数据库集合-- 数据库集合。查找() 那么我应该用什么最好的方式呢

  • 我看到一些教程建议在Kotlin中使用val而不是var。我相信val在Java中就像常量,对吗?那么,如果建议使用它而不是var,我们如何更改它的值? 更新:例如:为什么我要使用val而不是var声明类成员(变量或字段)?而在Java中,它就像:

  • 问题内容: 假设我们有两个实体,A和B。B与A具有多对一关系,如下所示: 现在,我要删除对象,并将删除操作级联到其所有子项。有两种方法可以做到这一点: 添加到OneToMany批注中,让JPA删除所有子项,然后再从数据库中删除A对象。 保持类不变,只需让数据库级联删除操作即可。 使用后面的选项有什么问题吗?这会导致实体管理器保留对已删除对象的引用吗?我之所以选择选项2而不是选项1的原因是,选项1生