ここから取得したコードは次のとおりですApache Edgentドキュメント
タプルが正確に何であるか理解できませんでした。コードは次のとおりです。
public static void main(String[] args) throws Exception {
TempSensor sensor = new TempSensor();
DirectProvider dp = new DirectProvider();
Topology topology = dp.newTopology();
TStream<Double> tempReadings = topology.poll(sensor, 1, TimeUnit.MILLISECONDS);
TStream<Double> simpleFiltered = tempReadings.filter(tuple ->
!optimalTempRangeRef.get().contains(tuple));
simpleFiltered.sink(tuple -> System.out.println("Temperature is out of range! "
+ "It is " + tuple + "\u00b0F!"));
tempReadings.print();
dp.submit(topology);
}
私が得るエラーはタプルを変数に解決できません。私が得ているエラーは何ですか?ありがとうございました。
回答 1 件
ザ・
TStream<T>
インターフェイスは、データのストリーム、通常はセンサーの読み取り値をモデル化するように設計されています。ザ・T
この場合、個々の測定値を保存するために使用されるタイプですが、「測定値」は実際には複数の数値(温度、湿度、風速など)を1つの複合タイプに結合することを意味します。値。ただし、例のコンテキストを見ると、単純な温度測定値のストリームを扱っているため、ここでは
T
タイプDouble
の単一の番号に対応 。したがって、変数名として「タプル」を選択することは少しわかりにくいです(数学的には、1タプル、しかしこの場合、それは単に「数」を意味します)。あなたのコードでは、
filter()
メソッドは、ここにある述語を取りますそして、
optimalTempRangeRef.get()
Range(Double)
を返します 、したがって、述語は言っています「温度値は最適範囲外ですか?」Range
のドキュメントから :編集:
IDEがJava 8ラムダ構文で問題を抱えているように見えるため、次のように匿名内部クラスを使用してコードを書き直すことができます。