Scala案例类私有构造函数,但是public apply方法
发布时间:2020-12-16 09:41:11 所属栏目:安全 来源:网络整理
导读:如果我有一个私有构造函数的case类,并且我无法访问companion对象中的apply-method。 case class Meter private (m: Int)val m = Meter(10) // constructor Meter in class Meter cannot be accessed... 有没有办法使用具有私有构造函数的案例类,但将生成的
如果我有一个私有构造函数的case类,并且我无法访问companion对象中的apply-method。
case class Meter private (m: Int) val m = Meter(10) // constructor Meter in class Meter cannot be accessed... 有没有办法使用具有私有构造函数的案例类,但将生成的apply-method保留在随播广告中? 我知道两个选项之间没有区别(在我的例子中): val m1 = new Meter(10) val m2 = Meter(10) 但我想禁止第一个选择。 – 编辑 – 令人惊讶的是以下作品(但不是我真正想要的): val x = Meter val m3 = x(10) // m3 : Meter = Meter(10) 解决方法
这里有一个私有构造函数和公共应用方法的技术。
trait Meter { def m: Int } object Meter { def apply(m: Int): Meter = { MeterImpl(m) } private case class MeterImpl(m: Int) extends Meter { println(m) } } object Application extends App { val m1 = new Meter(10) // Forbidden val m2 = Meter(10) } 背景信息private-and-protected-constructor-in-scala (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题
- webservice从weblogic 10g 升级至11g过程中ELEMENT NAME的问
- angularjs – Angular .controller()在.run()之前运行
- 好记性不如烂笔头——WebService与Remoting
- Angular 4 HttpInterceptor:显示和隐藏加载器
- 基于Scala类型的属性提取器 – 仅限Getter镜头?
- [Shell 脚本] 备份数据库文件至OSS服务(纯shell脚本无sdk)
- 如何设置bash以在单个选项卡上显示自动完成选项?
- 一个VSTF程序集测试管理工具
- scala – 如何在Play 2.3.4中设置资产指纹?