Java 方法CSVFormat.withDelimiter()的签名不适用于参数类型:[;]?

Java 方法CSVFormat.withDelimiter()的签名不适用于参数类型:[;]?,java,csv,groovy,Java,Csv,Groovy,我想使用ApacheCommonsCSV解析器解析CSV文件,但groovy在传递分隔符“;”时会引发异常作为char,因为groovy传递一个java.lang.Character,而该方法需要一个原语char。 我在单元测试Java7中使用groovy 有人知道如何解决这个问题吗? //Create the CSVFormat object CSVFormat format = CSVFormat.RFC4180.withHeader().withDelimiter(';'); /

我想使用ApacheCommonsCSV解析器解析CSV文件,但groovy在传递分隔符“;”时会引发异常作为char,因为groovy传递一个java.lang.Character,而该方法需要一个原语char。 我在单元测试Java7中使用groovy

有人知道如何解决这个问题吗?

//Create the CSVFormat object
  CSVFormat format = CSVFormat.RFC4180.withHeader().withDelimiter(';');

  //initialize the CSVParser object
  CSVParser parser = new CSVParser(new FileReader(filePath), format);


groovy.lang.MissingMethodException: No signature of method:    org.apache.commons.csv.CSVFormat.withDelimiter() is applicable for argument  types: (java.lang.String) values: [,]
 Possible solutions: withDelimiter(char), getDelimiter()
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55)
at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at test.ca.azb.j2ee.obb3.TestPersistence.testLoadHyrCsvToHyrTable(TestPersistence.groovy:226)

实际上,Groovy正在传递一个
字符串

groovy.lang.MissingMethodException:方法org.apache.CommonNormat.withDelimiter()的签名不适用于参数类型:(java.lang.String)

“;”是一个字符串,但您可以:

“;”as char
将实际生成一个
java.lang.Character
,但是Groovy将为您打开它以生成该方法所需的
char

CSVFormat format = CSVFormat.RFC4180.withHeader().withDelimiter(';' as char)