gpt4 book ai didi

java - 如何使用java中可选对象的参数调用方法

转载 作者:搜寻专家 更新时间:2023-11-01 01:21:16 24 4
gpt4 key购买 nike

让我们考虑下面的类

class A{
void met(int i){
//do somthing
}
}

让我们考虑一下我们有一个此类的可选对象,例如:

Optional<A> a;

是否可以在对象 a 上调用方法 met 而无需检查 a 是指一个完整的对象还是仅仅空(null)。像这样的东西:

a.map(A::met(5));

不幸的是,这段代码无法编译。如何做到这一点?

最佳答案

这行不通的原因有两个:

a.map(A::met(5));
  1. met 不返回任何内容,map 必须将输入 Optional 映射到输出 Optional
  2. 方法引用不接受参数,因此您应该使用 lambda 表达式。

你需要的是:

a.ifPresent(x->x.met(5));

另一种选择:

a.orElse(new A()).met(5);

如果 a 为空,这将在虚拟实例上执行 met(5),因此这可能不是最好的方法。

关于java - 如何使用java中可选对象的参数调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27522710/

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