采取如下的简单类:
class Person(name: String, age: Int) {}
Run Code Online (Sandbox Code Playgroud)
现在,当我实例化这个类时,我通常希望它的用户能够使用name和age.喜欢:
val ronald = new Person("Ronald", 22)
val ronaldsName = ronald.name // <-
Run Code Online (Sandbox Code Playgroud)
当然,这不起作用,除非我定义一个被调用的gettername,或者创建Person一个case类.后者是一个简单的解决方案,但我觉得我在滥用案例类?
前者有点不方便,因为我不能简单地说:
class Person(name: String, age: Int) {
def name = name
}
Run Code Online (Sandbox Code Playgroud)
所以,那么我必须name将类的构造函数中的第一个重命名为其他东西,比如personNameor _name或n.但这在我看来有点令人困惑,而且不那么优雅.这是相同的概念/变量/值,所以它应该具有完全相同的名称,对吗?
那么......这里最好或最正确的做法是什么?添加它是如此诱人case.
您只需添加val将参数转换为类的公共字段:
class Person(val name: String, val age: Int)
^^^ ^^^
Run Code Online (Sandbox Code Playgroud)
正如您所注意到的,案例类默认情况下会这样做.
| 归档时间: |
|
| 查看次数: |
443 次 |
| 最近记录: |