如何为默认构造函数参数定义访问器方法?

Vla*_*dim 8 scala

尝试为默认构造函数参数定义访问器方法,即:

class Person (age: Int) {
    def age: Int = this.age
}
Run Code Online (Sandbox Code Playgroud)

这显然会导致编译器错误:对重载定义的模糊引用,类Person中的方法年龄类型=> Int和类中的value age类型Int匹配期望类型Int

在这种情况下是否有办法区分成员方法名称和自动生成的成员值名称?

当然可以更改任一标识符的名称,但是在这种情况下是否有办法实际指定引用哪个标识符?

Ran*_*ulz 16

只需将"val"放在要作为实例属性公开的构造函数参数的前面.

  • 是的,你需要重命名param(例如`age0`),然后定义访问器`def age = {Math.abs(age0)` (3认同)

nur*_*ion 6

使用

class Person (val age: Int)
Run Code Online (Sandbox Code Playgroud)

如果你只想要一个吸气剂或者

class Person (var age: Int)
Run Code Online (Sandbox Code Playgroud)

如果你也想要一个二传手.