给我一些帮助,我就是无法解决这个问题。如何确保始终遵守对 getter 方法的约束?我的课程有这种形式:
abstract class Element {
var name: String
var description: String
}
class Component (var name: String, var description: String) extends Element
出于我项目的目的,我需要使用 var。name
我想对必须始终尊重的领域施加限制。当我创建Component
如下实例时:
val C1 = new Component ("C1 Component", "Description of C1")
当我更改值时:
C1.name = "new value"
如果我以这种方式创建类:
abstract class Element {
protected var _name : String
// Getter
final def name = _name
// Setter
final def name_= (value:String):Unit =
if (value.size < 5) println ("ERROR: Bad Value")
else _name = value
var description: String
}
class Component (protected var _name : String, var description: String) extends Element
在 main 方法中,因为我这里没有控制权:
val C1 = new Component ("C1", "Description of C1")
但只有稍后,当我更改值时:
C1.name = "comp"
我希望我的吸气剂永远受到尊重。我该怎么做呢?