为了账号安全,请及时绑定邮箱和手机立即绑定

如何从另一个类引用泛型类

如何从另一个类引用泛型类

12345678_0001 2021-06-08 13:42:39
我正在制作一个程序,该程序能够按升序或降序对整数或分数列表进行排序。我正在使用 GUI,当我按下按钮时,原始列表应该添加到二叉树中。应该执行中序遍历并且该列表应该显示在 GUI 中。我已经完成了所有工作,但后来我注意到我应该使搜索树类通用。我已将类更改为泛型,但在从 GUI 调用它以实际执行遍历时遇到问题。您可以提供的任何帮助将不胜感激。这是带有 Node 类的原始 SearchTreepublic class SearchTree {// creates the root of the treeNode root;// String to store the answer while tree is being traversedprivate String answer = "";SearchTree (Object x) {    root = new Node(x);}/* recursive method adding integers to the tree, * placing it depending on if it is smaller or larger * than the parent node */ Node insertInteger(Node node, Integer x) {    if (node == null) {        return node = new Node(x);    }    if (x < (Integer) node.parent) {        node.left = insertInteger(node.left, x);    } else {        node.right = insertInteger(node.right, x);    }    return node;}// recursive method for adding fractions to the treeNode insertFraction(Node node, Fraction x) {    if (node == null) {        return node = new Node(x);    }    if (x.compareTo((Fraction) node.parent) < 1) {        node.left = insertFraction(node.left, x);    }else {        node.right = insertFraction(node.right, x);    }    return node;}// in order traversal for the ascending orderString inOrder(Node node) {    if (node != null) {        inOrder(node.left);        answer = answer + node.parent + " ";        inOrder(node.right);    }    return answer;}// reversed traversal for the descending orderString descendingOrder(Node node) {    if (node != null) {        descendingOrder(node.right);        answer = answer + node.parent + " ";        descendingOrder(node.left);    }    return answer; }}class Node { Object parent; Node left; Node right; // Constructors Node(Object theParent) {    this(theParent, null, null); } private Node(Object theParent, Node lChild, Node rChild) {    parent = theParent;    this.left = lChild;    this.right = rChild; }}
查看完整描述

1 回答

?
哔哔one

TA贡献1854条经验 获得超8个赞

您正在使用占位符类型正确声明您的类T。当您实例化类时,您使用的是占位符,而不是您希望泛型类成为的类型。

SearchTree<Integer> st = new SearchTree<Integer>();

泛型类需要使用具体类型进行实例化,以使所有类型检查正常工作。


查看完整回答
反对 回复 2021-06-17
  • 1 回答
  • 0 关注
  • 169 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信