2016-06-29 7 views
2

私は元々Unitを返すメソッドを持っています。返された型をFuture [Unit]に変更した後、メソッド本体を変更する方法が見つかりません。最小行はメソッド呼び出しです。未来[Unit]を返す方法はありますか?

+1

「Future {()}」 – mfirry

+1

、さらには「Future.successful(())」 – mfirry

+0

第2のアプローチはコンパイラを通過させますが、最初のアプローチは行いません。ありがとう。 – TeeKai

答えて

-2

あなたはScalaの2.12 built-inFuture.unitUnit

def doSomething():Future[Unit] = { 
    TimeUnit.SECONDS.sleep(3) 
    println("hi") 
    Future.successful(()) 
} 
+0

ありがとうございます。それはコンパイラを通過します。 – TeeKai

+3

'Unit'コンパニオンオブジェクトは'() 'と同じではなく、' Unit'タイプもありません。最初の例はScalaの値の破棄のためにのみ機能します。 –

+0

@TravisBrown thxこれは –

6

の値を保持Futureが移動するための方法で返すことができます。それはキャッシュされるという利点があります。

関連する問題