gpt4 book ai didi

java - 如何确保方法有返回值?

转载 作者:行者123 更新时间:2023-12-02 04:41:43 25 4
gpt4 key购买 nike

我在下面编写的方法应该作用于 BinaryTreeNode 以压平该节点“下方”的树。我的if-else if-else根据我的理解,与递归(?)结构一起,总是会返回一个值,但我在 Eclipse 中收到错误消息“此方法必须返回 <Integer> 类型的结果。

经过研究,我相信 Java 不能完全确定该方法将始终返回正确的值,因为 return 语句位于“else”中。这是问题所在吗?我该如何设计方法来避免这个问题?

//doFlatten acts on a BinaryTreeNode and takes a storage list as an argument
//it will call itself on any children on the node
//if the node is a leaf, it will update the storage list and return that updated list
public List<Integer> doFlatten(List<Integer> result){
if (this.leftChild != null){
this.leftChild.doFlatten(result);
}
else if (this.rightChild != null){
this.rightChild.doFlatten(result);
}
else{
result.add(this.value); //add leaf to result list
return result;
}
}

最佳答案

将返回类型设为void并删除返回结果。无需返回结果对象,因为它与传入的结果对象相同(调用者已经拥有对它的引用)。

关于java - 如何确保方法有返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30107045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com