ストリームフローの問題によって引き起こされます

    
     SearchHit [] searchHits1 = searchHits.get()。

     //方式一
ため(INT I = 0; I <searchHits1.length; iは++){
マップの<string、オブジェクト>ソース= searchHits1 [I] .getSource()。
list.add(ソース)。
}
     //方式二
IF(searchHits.isPresent()){
。。は、Arrays.asList(searchHits.get())parallelStream()のforEach(InternalSearchHit - > list.add(InternalSearchHit.getSource()))。
}

コードライブラリの論理は、ES指定されたデータから単離し、その後、セットリストに格納され、ページを返しまたは他の方法で処理され、ここでの問題は、ときに、第2の動作モードでは、リストはヌルデータであろう、ということであり、次のように図:

 

 

空のデータの存在は、それが頭痛ああ、ああ、予期せぬバグのすべての種類の原因となります。

ノーマルモードにディスプレイ。

なぜ?

理由:私は慎重に検討します。

、ストリームの原因を発見し、その上に次のコードに置き換え:

        もし(searchHits.isPresent()){ 
            。。は、Arrays.asList(searchHits.get())ストリーム()のforEach(InternalSearchHit - > list.add(InternalSearchHit.getSource()))。
        }

 

ここでは、フローの違いについて話をする必要があります。

 

おすすめ

転載: www.cnblogs.com/notchangeworld/p/11649464.html