gpt4 book ai didi

Java - 从变量中删除 "Optional"(转换)

转载 作者:行者123 更新时间:2023-12-01 06:42:39 24 4
gpt4 key购买 nike

对于一项作业,我必须设置一个变量。给我的 set 方法将其转换为“可选”。但是,我必须将此变量存储在不允许可选变量的 ArrayList 中。如何转换该变量,使其不再是可选的?

设置方法:

 public void setParentVertex(IVertex<T> parentVertex)
{
if(parentVertex == null)
this.parentVertex = Optional.empty();
else
this.parentVertex = Optional.of(parentVertex);
}

我尝试使用它的地方:

 ArrayList<IVertex<T>> path = new ArrayList<IVertex<T>>();
IVertex<T> parent = current.getLabel().getParentVertex();
path.add(parent);

我不断收到的错误是:“错误:不兼容的类型:可选>无法转换为 IVertex”,因为我声明变量“parent”的行。谢谢。

最佳答案

这是正确的版本

List<IVertex<T>> path = new ArrayList<IVertex<T>>();
current.getLabel().getParentVertex().ifPresent(path::add)

另外,最好重写 setParentVertex 函数:

public void setParentVertex(IVertex<T> parentVertex) {
this.parentVertex = Optional.ofNullable(parentVertex);
}

关于Java - 从变量中删除 "Optional"(转换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42877361/

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