Kotlin介绍了数据类的概念。这些类将基于构造函数中声明的属性派生equals()/hashCode()、toString()、getters()/setters()和copy()函数:
data class KotlinUser(val name: String, val age: Int)
在Java中,这看起来类似于:
public class JavaUser {
public JavaUser(String name, Int age) {
...
}
//getters
//setters
//equals()/hashCode()
//toString()
}我的问题是如何在Kotlin中打包这些数据类文件。来自Java,我会将JavaUser存储在它自己的类文件中:org.package.foo.JavaUser下面
由于数据类的简单性,我们是否以同样的方式在Kotlin中存储数据类文件?(即每个数据类的org.package.foo.KotlinUser文件和单独的文件)。此外,是否不赞成将多个数据类存储在一个类文件中?:
org.package.foo.DataClasses包含:
data class Foo(val a: String, val b: String)
data class Bar(val a: Int, val b: Int)我环顾了一下Kotlin文档的成语/编码风格部分,却找不到这方面的任何信息(也许我浏览过了)。什么是最佳做法?
谢谢!
发布于 2018-03-14 17:04:28
编码风格的约定为相当明确的指导提供了以下方面的信息:
在同一个Kotlin源文件中放置多个声明(类、顶级函数或属性)是被鼓励的,只要这些声明在语义上密切相关,并且文件大小仍然合理(不超过几百行)。
发布于 2018-03-14 15:51:23
Kotlin行动书中提到了源代码布局(第2.2.3章,第27页):
在Kotlin中,您可以在同一个文件中放置多个类,并为该文件选择任何名称。 ..。 然而,在大多数情况下,遵循Java的目录布局并按照包结构将文件组织到目录中仍然是很好的做法。在Kotlin与Java混合的项目中,坚持这种结构尤其重要。 ..。 但是,您应该毫不犹豫地将多个类拖到同一个文件中,特别是在类很小的情况下(在Kotlin中,它们经常是这样的)。
因此,要回答你的问题:这取决于:)
https://stackoverflow.com/questions/49281727
复制相似问题