Scala 中的递归数据类型

Recursive DataType in Scala

您好,我想知道是否有人可以解释我在 Spark 代码库中找到的这个签名。它看起来像一个递归数据类型,它用于构建查询计划,所以它有点有意义。有没有人对此有更详细的了解?

abstract class TreeNode[BaseType <: TreeNode[BaseType]] extends Product 

F-Bounded类型(或self-recursive类型)。不是特定于scala的,例如相当于 java

public abstract class Enum<E extends Enum<E>> implements Comparable<E>

你可以阅读here or here