gpt4 book ai didi

oop - 限制构造函数访问

转载 作者:行者123 更新时间:2023-12-04 18:40:24 24 4
gpt4 key购买 nike

我有一个这样的类型

sealed class Foo[A](val value: A)

object Foo {
def apply[A](v: A)(implicit num: Numeric[A]): Foo[A] =
/* highly complex stuff to make a Foo[A] */

implicit def toA[A](x: Foo[A]) = x.value
}

Foo 作为一个类只应该保存值,因此隐式 Numeric 没有多大意义。但我需要 A 的类型始终是数字。

所以我的想法是让 Foo 的普通构造函数无法在它的伙伴之外使用。这在 Scala 中可能吗?

最佳答案

是的,因为伴生对象可以访问其伴生类的私有(private)成员,您只需将主要(和辅助,如果有的话)构造函数设为私有(private)。伪代码在这里:

class ConcreteFoo private (n: Int) extends Foo(n)

关于oop - 限制构造函数访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6955597/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com