Java 如何返回方法不需要的值
这是主要方法的一部分Java 如何返回方法不需要的值,java,binary-tree,optional,Java,Binary Tree,Optional,这是主要方法的一部分 System.out.println(node.getNode(3)); //in the end i have to get Optional[3] System.out.println(node.getNode(7)); // in the end I have to get Optional[7] 我有办法 public Optional<Node> getNode(Integer value) { return getNodeH
System.out.println(node.getNode(3)); //in the end i have to get Optional[3]
System.out.println(node.getNode(7)); // in the end I have to get Optional[7]
我有办法
public Optional<Node> getNode(Integer value) {
return getNodeHelper(this, value);
}
public Optional<Node> getNodeHelper(Node note, Integer value) {
if (note.value.equals(value)) {
return Optional.of(note);
} else if (note.value < value) {
return getNodeHelper(note.right, value);
} else if (note.value < value) {
return getNodeHelper(note.left, value);
}
return Optional.empty();
}
它将更简单的返回类型Optional
,然后我可以编写returnOptional.of(note.value)
,仅此而已,但我必须使用Optional
讲师建议使用覆盖,但我不知道如何操作。在getNode()
方法中,将返回的Optional
映射到Optional
:
public可选getNode(整数值){
返回getNodeHelper(this,value).map(Node::getValue);
}
在Node类中,可以编写toString()方法吗??并返回其中整数的值
如果编写toString()方法,则它不会返回可选的[ee.ttu.iti0202.tree]。Node@6615435c]值,它将返回您在toString()方法中返回的内容
您使用
可选是什么意思?如果要返回可选
,则需要返回可选
。还是只想更改控制台输出?在这种情况下,只需覆盖。您似乎有XY问题。基本上,您是在询问如何返回一个可选值,该值包含您给方法的值。这毫无意义。请尝试用一个问题来重新表述您的问题,而不是您认为需要的解决方案。从OP:“返回类型将更简单Optional
,然后我可以编写return Optional.of(note.value)
,仅此而已,但我必须使用Optional
”这是无法更改的public Optional getnodehelp(Node note,Integer value)
但是没有提到调用方:getNode()
。非常感谢!!这正是我需要的
public Optional<Node> getNodeHelper(Node note, Integer value)
private Integer value;
Node left;
Node right;
public Optional<Integer> getNode(Integer value) {
return getNodeHelper(this, value).map(Node::getValue);
}
//overriding the toString() method
public String toString(){
return value.toString();
}