这个问题很简单,也许是因为我对此过程有些困惑。
代码示例显示了我要执行的操作:
cc.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("file://files?noop=true")
.split()
.tokenize("\n")
.split()
.method(SplitToken.class, "hashTokens")
和:
class SplitToken {
@SuppressWarnings("unchecked")
public static List<HashMap<String, Integer>> hashTokens(final Exchange exchange) {
List<String> oldstr = exchange.getIn().getBody(List<String>);
//Create a key value hashmap from accumulated string list
}
}
但返回错误:
expression required.
一般而言,关于如何实现所需类的getbody的任何想法? (由于第一个拆分方法返回了一个字符串列表,但我无法在第二个拆分中检索它,还是可以吗?)
最佳答案
据我所知,您无法使用getBody
获得通用列表。这可能起作用:
List<String> oldstr = (List<String>)exchange.getIn().getBody(List.class);
甚至更好的是,您可以使用
@Body
注释为您制作骆驼提取物主体:public static List<HashMap<String, Integer>> hashTokens(final Exchange exchange, @Body List<String> oldStr) {
//Create a key value hashmap from accumulated string list
return new ArrayList<>();
}