如何覆盖Scala中的可变变量?
发布时间:2020-12-16 09:10:21 所属栏目:安全 来源:网络整理
导读:我想在构造函数中覆盖Trait中的一个可变变量.但是它会抱怨“在int型的特征A中覆盖变量a;变量a不能覆盖可变变量”.为什么斯卡拉不允许我这样做?和任何最佳做法吗?谢谢 trait A{ var a:Int = _}class B(override var a:Int) extends A 解决方法 你不能覆盖它
我想在构造函数中覆盖Trait中的一个可变变量.但是它会抱怨“在int型的特征A中覆盖变量a;变量a不能覆盖可变变量”.为什么斯卡拉不允许我这样做?和任何最佳做法吗?谢谢
trait A{ var a:Int = _ } class B(override var a:Int) extends A 解决方法
你不能覆盖它(因为现在不泄露自己的原因,除了vars可以被修改,所以为什么覆盖它们),但是你可以将声明的变量未初始化并将后者委托给B:
trait A { var a: Int } class B(var a: Int) extends A (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |