関数を一般化するために、null を使用していることに気づきました。しかし、それを削除するためにリファクタリングする方法がわかりません。コードスニップは次のとおりです。
trait ContextSwitch {
def appropriateContext(implicit context: ActorContext = null, system: ActorSystem = null): ActorRefFactory = {
val either: Either[ActorContext, ActorSystem] = if (context != null) Left(context) else Right(system)
val refProvider = either.fold[ActorRefFactory](ac => ac, as => as)
refProvider
}
}
アイデアは、私が今これを呼び出すことができるということです:
appropriateContext.actorOf(Props[Actor])
コンテキストに関係なく機能します。これにより、それに依存する他の機能がテスト可能になります (テストはシステムレベルで行われますが、機能は通常、コンテキストのみが利用可能なアクターにデプロイされるため)
関数は機能しますが、ヌルを取り除くにはどうすればよいですか?