Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何返回方法不需要的值_Java_Binary Tree_Optional - Fatal编程技术网

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
,然后我可以编写return
Optional.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();  
 }