0
我的代碼由許多scala.concurrent.Futures的援引阿卡演員在我的演員實現Scala的期貨空安全邏輯映射和flatmap
所以樣品返回代碼將是類似以下內容:
val ivResult: Future[Any] = ask(ivActor, ivId)
// perform mapping is a function of type (Any) => Unit
val ivMapping: Future[Unit] = ivResult.map(performingMapping)
// erLookup is a function of type (Any) => Future[Any]
val erResult: Future[Any] = ivResult.flatMap(erLookup)
依此類推。代碼基本上由future.flatmap()。map()來執行彙總邏輯
我的問題是,我想要實現空安全邏輯,如果未來的結果爲null,那麼我們不會拋出NullPointerExceptions
顯然,我可以在每個函數中嵌入空安全檢查,但考慮到Scala強大的功能,這些看起來有點冗長。
所以,我在找找出是否有一個更優雅的方式做到這一點,可能使用implicits等
只是不返回'null'作爲'T'的實例,返回'Option [T]'。 'grep -r「null」'在你的項目中並修復所有出現的'null'。如果你有一個返回'null'的第三方方法,用'Option'包裝它:'Option(thirdPartyMethod())'。 – senia
我很好奇,看到你在執行那些performMapping和erLookup函數。 – hequ