我无法弄清楚这段代码是如何工作的?

class Node[TypeOne <: Node[TypeOne]] {
  var x: TypeOne = _
}


object Tree extends App {
  val treeNode = new Node[String]
  treeNode.x = "ten"
  //treeNode.x = new TreeNode[String]
}

最初,我由签名类Node [TypeOne

最佳答案

此模式通常用于希望静态了解其具体子类型的基类或特征。库设计人员很可能希望您扩展Node:

class MyNode extends Node[MyNode]

然后直接使用MyNode而不是Node

关于scala - Node [TypeOne <: Node[TypeOne]] in scala mean?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39344756/

10-10 18:53