在Scala上使用带有选项返回类型的映射

bZh*_*ang 0 scala future option

说我有一个函数,它接受某种Option [] ...即:

def help(x: Int, 
         y : Option[BigInteger], 
         ec: ExecutionContext, 
         sc: SecurityContext): Future[Long] = { ... }
Run Code Online (Sandbox Code Playgroud)

我有一个用地图调用它的对象,比方说

val answerList: List[Future[Long]] =  random.getPersons
       .map(p => help(x , myY, ec, sc))
       .collect(Collectors.toList())
Run Code Online (Sandbox Code Playgroud)

我说"myY"就是这么说的

类型不匹配,预期Option [BigInteger],实际:BigInteger.

当我的帮助方法选择类型时,我会看到它的来源.

我尝试通过选择[myY]来投射myY,但这似乎没有帮助.假设帮助方法正确实施,有人可以帮助我或指出正确的方向吗?谢谢!

Ass*_*son 5

我假设这myY是一个BigInteger,那么你需要做的就是调用帮助Option(myY)而不是myY

  • 另外,如果`myY`保证是非null,那么使用更具体的`Option`构造函数可能是有意义的 - 即`Some(myY)` (3认同)