这个问题很简单,也许是因为我对此过程有些困惑。
代码示例显示了我要执行的操作:

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<>();
}

09-04 11:33