【发布时间】:2014-11-06 00:52:26
【问题描述】:
我正在练习递归并使用递归辅助方法。在我的辅助方法中,出现一个错误,提示
Tree 类型中的 someMethod(K) 方法不适用于参数 (K, List, int)。
但是,我不想使用someMethod(K k) 方法,因为我正在尝试使用someMethod(K k, List<K> L, int n) 辅助方法。如何让 Eclipse “知道”我正在尝试使用其他方法?
这是我目前所拥有的:
public List<K> someMethod(K k) {
List<K> L=new LinkedList<K>();
if (lookup(k) != null) {
return someMethod(k, L, 0);
}
return L;
}
private List<K> someMethod(K k, List<K> L, int n) {
if (this.k.compareTo(k) == 0) {
L.add(this.k);
return list;
}
if (this.k.compareTo(k) < 0) {
right.someMethod(k, L, n); //error here
L.add(this.k);
}
if (this.k.compareTo(k) > 0) {
left.someMethod(k, L, n); //error here
L.add(this.k);
}
}
编辑: 左右声明:
private Tree<K, V> left, right;
【问题讨论】:
-
这只是来自 Eclipse 的一个注释还是程序实际上没有编译?
-
好吧,当我尝试运行该项目时,它说有错误,所以我猜该程序实际上并没有因此而编译。我没有其他错误。
-
请向我们展示
left和right的声明。 -
此外,递归辅助方法使用完全相同的参数调用自己,有令人讨厌的堆栈溢出倾向。
-
什么是
Tree?那是包含someMethod的类吗?我认为您需要发布整个内容。
标签: java recursion helpermethods