scala - 替代构造函数中的固定类型参数

标签 scala constructor parameterized-class

这能做到吗?

final case class C[A] (v: A) {
  def this() = this(true)
}

当用给定的构造函数构造时,C 自动是 C[Boolean]。这个版本不能编译,但感觉它应该以某种方式可行,特别是因为以下似乎有效:
final case class C[A] (v: A = true)

我想要一些 Java 互操作性,所以我尽量避免使用默认值。我认为我可以通过在伴随对象中使用工厂方法来实现这一点,但可以直接完成吗?由于 C 是一个 case 类,因此工厂方法有点麻烦恕我直言。

最佳答案

出什么问题了

object C{
  def apply() = C(true)
}

这样您就可以使用伴随对象?在 Java 中,这将是,C$.apply()不?

关于scala - 替代构造函数中的固定类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21912797/

相关文章:

即使 Json.toString 返回正确的值,Json.asString 也返回 None

scala - 验证 sbt 安装时出错

java - Apache Spark Broadcast 变量是 Broadcast 类型?不是RDD?

c# - 非静态类中静态构造函数的作用是什么?

java - 构造函数中的 if 语句未按预期工作? java

c++ - 为使用 malloc() 分配的对象数组调用构造函数

java - 如何复制和过滤 ImmutableList<?在 Java 中扩展 MyObject>

scala - 将稀疏特征向量分解为单独的列