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()))。 }
ここでは、フローの違いについて話をする必要があります。