我有一个Eclipse项目,我将库“OpenCSV”作为外部JAR导入。该库现在显示在我的项目“参考库”下。
然而,当我打电话时:
CSVReader reader = new CSVReader(new FileReader(csvPath));
Eclipse抛出一个错误,指出没有定义构造函数CSVReader。 csvPath的类型为String。
有什么想法吗?
编辑:截图
答案 0 :(得分:5)
我可能会弄错(我不会使用此库并且不知道其软件包名称的历史记录),但看起来autoEvoSuite
是您自己的软件包。
如果是这种情况那么你有类名冲突 (实际上没有冲突,你只是使用了错误的类),因为你的类也被命名为{{ 1}}所以在方法CSVReader
内你不是调用readCVS
的构造函数,而是调用自己类au.com.bytecode.opencsv.CSVReader
的构造函数,因为你的类没有
autoEvoSuite.CSVReader
构造函数,编译器会通知您这个问题。
要解决此问题,请考虑重命名您的类,或者通过编写其完整的包名来明确说明您要使用哪个类
public CSVReader(FileReade reader){...}
答案 1 :(得分:2)
你必须尝试捕获FileNotFoundException并查看下面的代码。
public FileReader(String fileName) throws FileNotFoundException {
super(new FileInputStream(fileName));
}
你可以修改它,如下面的
try {
CSVReader reader = new CSVReader(new FileReader(csvPath));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
答案 2 :(得分:2)
您正在为自己的类CSVReader
调用一个不存在的构造函数!重命名您的班级并创建au.com.bytecode.opencsv
的新实例,或删除相应的行,确保导入au.com.bytecode.opencsv.CSVReader
,然后重新创建该行。
或者 - 但我不确定这是否是你想要的 - 你可以使CSVReader
(最好用另一个名字),扩展au.com.bytecode.opencsv.CSVReader
并覆盖相应的构造函数。
我猜您的问题是因为CSVReader
使用自动完成而未选择正确包中的类而引起的?
答案 3 :(得分:0)
您需要在项目的构建路径中添加相关的JAR才能构建它。
您的Java项目(右键单击) - >属性 - > Java构建路径 - >图书馆 - >添加JAR /添加外部JAR
答案 4 :(得分:0)
My full solution is listed here,尝试使用CSVParser instead,可以从Apache Commons获得,并且更容易使用!