Scala转发或委托方法来封装对象
发布时间:2020-12-16 18:30:54 所属栏目:安全 来源:网络整理
导读:有没有可能隐式地将一些类方法转发给封装对象? case class Entity(id: Int,name: String,) { private lazy val lastScan = new LastScan def getLastScanDate = lastScan.getLastScanDate def updateLastScanDate = lastScan.updateLastScanDate} 我想避免
有没有可能隐式地将一些类方法转发给封装对象?
case class Entity(id: Int,name: String,) { private lazy val lastScan = new LastScan def getLastScanDate = lastScan.getLastScanDate def updateLastScanDate = lastScan.updateLastScanDate } 我想避免创建def updateLastScanDate = lastScan.updateLastScanDate只是为了将方法转发到包装对象. 解决方法
用简单的语言来说这是不可能的.曾经有一个Kevin Wright的编译器插件来实现这种自动委托.
他似乎正在开发一个基于宏的Autorproxy “Rebooted”版本,直接将其包含在您的项目中.我在这里粘贴测试来源的一个例子: trait Bippy { def bippy(i : Int): String } object SimpleBippy extends Bippy { def bippy(i: Int) = i.toString } @delegating class RawParamWrapper(@proxy pivot: Bippy) val wrapper = new RawParamWrapper(SimpleBippy) assert(wrapper.bippy(42) == "42") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |