我有一个我要发射的arrayList并在另一个bolt中接收它。 正如我在另一篇文章中所建议的那样: 第一个螺栓:
public void execute(Tuple tuple) {
ArrayList<Integer> i = (ArrayList<Integer>)tuple.getValue(0);
....
}
下一个螺栓:
<system.webServer>
<staticContent>
<remove fileExtension=".eot" />
<mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
<remove fileExtension=".ttf" />
<mimeMap fileExtension=".ttf" mimeType="application/octet-stream" />
<remove fileExtension=".svg" />
<mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
<remove fileExtension=".woff" />
<mimeMap fileExtension=".woff" mimeType="application/font-woff" />
</staticContent>
</system.webServer>
但是我得到的是一个大小为0的列表,而不是4号列表。 有什么想法吗?
答案 0 :(得分:2)
不确定列表是什么类型(我假设是一个ArrayList)。如果是这样,你的第一个螺栓可能有这个:
Scanner s = new Scanner(System.in);
String c = s.nextLine();
System.out.print(c.length());
确保你也在螺栓1中声明它:
@Override
public void execute(Tuple tuple, BasicOutputCollector collector) {
List<Integer> listI = getSomeListOfIntegers();
collector.emit(new Values(listI));
}
然后在你的第二个螺栓中:
@Override
public void declareOutputFields(OutputFieldsDeclarer declarer) {
declarer.declare(new Fields("listI"));
}