假設(shè)我有一個返回的方法CompleteableFuture[Data]:def doIt(): CompleteableFuture[Data] = { ... }而且,有一個非零的機會doIt()可以返回null。我們?nèi)绾握{(diào)用doIt()直到結(jié)果不是null不阻塞調(diào)用線程?Scala 中的方法是什么?我目前的嘗試:Future { var data: Data = null blocking { while (data == null) { data = doIt().get } } data} 我不想使用blockingand get。有任何想法嗎?此外,map在此之后還有人呼吁這個 Future:val myFuture = Future { var data: Data = null blocking { while (data == null) { data = doIt().get } } data}.map { d => d.someMember } d.someMemberNullPointerException除非我們確保第一個Future具有非空結(jié)果,否則將拋出 a 。
添加回答
舉報
0/150
提交
取消