java - 如何在 Java 中实例化通用递归类

标签 java class generics recursion

我的问题是我使用的不是我开发的类(我从 Microsoft Azure SDK for Java 获取它)。该类称为 Node,您可以看到它 here .

如您所见,该类是一个递归声明的泛型类,如下所示:

public class Node<DataT, NodeT extends Node<DataT, NodeT>> {
      ...
}

当我尝试实例化它时,我不知道该怎么做。我正在这样做,但我知道这不是办法,因为它没有尽头:

Node<String, Node<String, Node<String, Node<...>>>> myNode = new Node<String, Node<String, Node<String, Node<...>>>>;

希望您能理解我的问题。谢谢。

最佳答案

一种方法是像这样扩展 Node:

class MyNode<T> extends Node<T, MyNode<T>> {
}

然后像这样实例化它:

Node<String, MyNode<String>> node1 = new MyNode<String>();

MyNode<Integer> node2 = new MyNode<Integer>();

关于java - 如何在 Java 中实例化通用递归类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43893586/

相关文章:

c++ - 从没有默认构造函数的类继承的类

php - PHP 类属性可以等于另一个类属性吗?

java - 带有必须实现 Serialized 的参数的静态方法

java - java 泛型中的泛型类型参数

ios - 测试定义为 Any 的值的数组包含,但保证属于同一类型。

java - 使用java进行LDAP AD分页

JAVA - 在字符串中每两个单词后添加一个逗号?

c++ - 使用指向基抽象类的指针访问子类成员

java - 打印 BufferedReader 返回的多行

java - Java 中使用 JavaCV 的 OpenCV 语句的等价物