我有一个对象树 T,声明为
public class Tree<T> {
private Node<T> root;
public Tree(T rootData) {
root = new Node<T>();
root.data = rootData;
root.children = new ArrayList<Node<T>>();
}
public static class Node<T> {
private T data;
private Node<T> parent;
private List<Node<T>> children;
}
}
并且想要添加一个函数keepBranch
,它将树减少到其分支之一。
但我需要 keepBranch
来将对象 T 作为参数,以选择分支。
类似的东西
public void keepBranch(<T> param) {
for (Node<T> node : this.root.children) {
if (param.equals(node.data)) {
this.root = node;
}
}
}
有办法做到这一点吗?还是我做错了?
最佳答案
将参数类型更改为T
。但你的比较是错误的,你将一个值与一个节点进行比较。更改是为了将节点的值与 param
进行比较:
public void keepBranch(T param) {
for (Node<T> node : this.root.children) {
if (param.equals(node.data)) {
this.root = node;
}
}
}
关于java - 带泛型参数的函数 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42138969/