当一个对象本身有一个相同类型的对象时,它叫什么?
例:
public class Foo{
public Foo myFoo;
}
Run Code Online (Sandbox Code Playgroud)
这意味着它Foo是一个"递归数据结构".这样的例子是树,图,链表等.没有很多重要的程序编写不使用至少一些递归结构,例如在任何SQL服务器实现中,执行的查询计划很常见以类似的方式定义.作为一个很小的例子,该WHERE子句可能被转换为FilterNode对从其他一些接收的数据Node(如表扫描)的行为:
public interface Node { }
public class FilterNode implements Node {
public Node underlyingNode;
public Condition filterCondition;
}
Run Code Online (Sandbox Code Playgroud)
在许多情况下,整体结构形成一个有向无环图,这意味着它可以很容易地递归地安全地遍历它.但如果它有周期,那么你需要小心你不要进入无限递归(这是上面的另一个答案幽默地警告).