2017-02-28 5 views
1

Oracleによると、lamdbasのシリアル化はお勧めできません。シリアル化されたlambdaをHazelcastで使用することは可能ですが、これについてどのように扱うのだろうか、ラムダクラスの重複に関する問題はありますか?例えばラムダ用の生成されたクラスが複製されるときに間違ったコードが実行される可能性があります。分散Executorと分散マップ実装の使用に最も関心があります。シリアル化されたラムダのヘビキャストはどのように扱われますか?

答えて

2

シリアライズされたラムダは、Javaラムダシリアライズ仕様に従ってシリアライズされます。それはJavaのシリアライズのようにシリアライズされ

(Runnable & Serializable) (v) -> System.out.println(v); 

その方法:唯一の公式にサポートされている方法は、「ダブルキャスト」を実行して、標準的な方法です。しかし、ラムダに外部コンテンツを取り込まないことをお勧めします。

+0

あなたは外部コンテンツをどういう意味ですか、ラムダは単に状態のない関数です、どのようにその中に何かを保存できますか?状態のある匿名の内部クラスを意味しますか? – newlogic

+0

もう1つは、囲むコンテキストをキャプチャして、あなたは状態でラムダを持っています。 – noctarius

関連する問題