作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
让我们考虑下面的类
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));
met
不返回任何内容,map
必须将输入 Optional
映射到输出 Optional
。你需要的是:
a.ifPresent(x->x.met(5));
另一种选择:
a.orElse(new A()).met(5);
如果 a
为空,这将在虚拟实例上执行 met(5)
,因此这可能不是最好的方法。
关于java - 如何使用java中可选对象的参数调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27522710/
我正在尝试用 Swift 编写这段 JavaScript 代码:k_combinations 到目前为止,我在 Swift 中有这个: import Foundation import Cocoa e
我是一名优秀的程序员,十分优秀!