Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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 Kotlin数据类打包_Java_Kotlin_Coding Style_Convention - Fatal编程技术网

Java Kotlin数据类打包

Java Kotlin数据类打包,java,kotlin,coding-style,convention,Java,Kotlin,Coding Style,Convention,Kotlin介绍了数据类的奇妙概念。这些类将基于构造函数中声明的属性派生equals()/hashCode(),toString(),getters()/setters(),以及copy()函数: 数据类KotlinUser(val name:String,val age:Int) 在Java中,这看起来像: public class JavaUser { public JavaUser(String name, Int age) { ... } //get

Kotlin介绍了数据类的奇妙概念。这些类将基于构造函数中声明的属性派生
equals()/hashCode()
toString()
getters()/setters()
,以及
copy()
函数:

数据类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文档中的惯用语/编码风格部分,但找不到任何关于这方面的信息(也许我只是略过了它)。最佳做法是什么

谢谢

本书介绍了源代码布局(第2.2.3章,第27页):

在Kotlin中,您可以将多个类放在同一个文件中,并为该文件选择任何名称

然而,在大多数情况下,遵循Java的目录布局并根据包结构将文件组织到目录中仍然是一种很好的做法。在Kotlin与Java混合的项目中,坚持这种结构尤其重要

但是您应该毫不犹豫地将多个类拉入同一个文件,特别是如果类很小(在Kotlin中,它们通常很小)


因此,要回答您的问题:这取决于:)

编码风格约定给出了以下内容:

鼓励在同一Kotlin源文件中放置多个声明(类、顶级函数或属性),只要这些声明在语义上彼此密切相关,并且文件大小保持合理(不超过几百行)


另外需要注意的是,方法/函数可以存在于Kotlin中的文件级别(与Java相反,Java强制方法成为类的一部分)。因此,除了包含几个类之外,Kotlin文件还可以(或者相反地)包含一组方法。