我是骆驼的新手,我为分离器编写了代码。 我编写了一个context.xml,其中包含用于映射POJO的路由和bean,以及一个包含以下代码的FileSplitter.java文件:
public class FileSplitter {
public List<Object> split(Exchange exchange) throws IOException {
List<Object> outputList;
outputList = (List<Object>) exchange.getIn().getBody(File.class);
return outputList;
}
}
我收到的错误是这样的。 这是控制台输出:
java.lang.ClassCastException: java.io.File cannot be cast to java.util.List
at mainJava.FileSplitter.split(FileSplitter.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.lang.Thread.run(Unknown Source)
错误似乎出现在这一行:
outputList = (List<Object>) exchange.getIn().getBody(File.class);
答案 0 :(得分:2)
来电getBody(File.class)
将返回java.io.File
个实例,您无法将其转换为List
,但它始终为java.io.File
类型。
就像用Java编写
File file = new File("foo.txt");
List list = (List) file;
您无法做到,并且您也会遇到类型转换异常。