Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我应该有一个单独的POJO类来表示从房间表返回的所有可能的列吗?_Java_Android_Kotlin_Pojo_Android Room - Fatal编程技术网

Java 我应该有一个单独的POJO类来表示从房间表返回的所有可能的列吗?

Java 我应该有一个单独的POJO类来表示从房间表返回的所有可能的列吗?,java,android,kotlin,pojo,android-room,Java,Android,Kotlin,Pojo,Android Room,这是当前我在Kotlin中表示文件的数据类。只要列信息匹配,Room就可以通过构造在返回类型中指定的POJO来返回列。根据用例的不同,例如将模型显示为视图或存储它,我需要不同的列。我应该为每种情况创建POJO还是使用下面的POJO,因为我可以有空字段 我关心的主要是内存,因为空值仍然会创建占用空间的指针。维护不同的POJO并更新它们是一件麻烦事-需要转换器和工厂。但以下模型也可能变得更大 data class Photo( val id: Long, val name: String?, val

这是当前我在Kotlin中表示文件的数据类。只要列信息匹配,Room就可以通过构造在返回类型中指定的POJO来返回列。根据用例的不同,例如将模型显示为视图或存储它,我需要不同的列。我应该为每种情况创建POJO还是使用下面的POJO,因为我可以有空字段

我关心的主要是内存,因为空值仍然会创建占用空间的指针。维护不同的POJO并更新它们是一件麻烦事-需要转换器和工厂。但以下模型也可能变得更大

data class Photo(
val id: Long,
val name: String?,
val isFavourite: Boolean?,
val isPrivate: Boolean?,
val fileType: String?,
val dateTaken: Long?,
val height: Int?,
val width: Int?,
val location: String?)

当你开发一个模型时,你应该遵循原则。据此,您应根据以下问题的答案构建模型:

  • 是否所有照片都有文件类型、id、高度和宽度:可能是-这意味着此字段应属于照片
  • 是否所有照片都有拍摄日期、位置、isPrivate等-如果没有,您可以使用association=createpojolikephotoinfo。从这个角度来看,您可以创建按对分组的POJO等

正如其他人在评论中指出的那样,你不应该担心空间,除非它是你应用程序中的瓶颈。我的意思是,如果你有很多物体,而你的空间有限。或者你可以在将来面对这个问题。在大多数情况下,答案是否定的。

好吧,我个人几乎从不关注记忆片段,而是尝试获得一个好的编码模型。如果这需要小型的、集中的类,我将创建它们。如果smal类会让读者感到困惑而不是帮助,我将使用更少的类。通过尽量减少空指针的数量来优化内存,您几乎总能优化应用程序中不相关的部分。也就是说,我不能直接回答您的问题。我想到的另一件事是:您的通用名数据类代表什么样的文件?对于“DateTake”、“height”和“width”等属性,这看起来像一个图像文件,但不是一个通用文件。这也是由于内存优化,还是整个数据模型中可能存在一些缺陷?Kotlin的空安全性非常有用,因此创建这样的对象不会带来负担。是的,它是一个图像文件。我在发布此邮件时重命名了。很抱歉。在我的项目中,实际模型是“照片”。是的。我一直在遵循各种架构模式,尽管它们很健壮,但有时它们会让您做出过度计算的决策,想象您的软件可能永远不会遇到的所有角落案例和假设。或者至少我被困在这个循环中。