为了完成这段代码,我一直在搜索各种教程两天,但是它们都没有帮助我理解我的代码出错的概念。
我正在尝试写入文本文件,然后从中读取到Jtable中。我正在使用数组。我的导师告诉我,我使用了太多的列表 - 所以我试图只使用一个'constructorList',现在它不会编译。
显示的错误是:
error: method readFile in class CQUPestGUI cannot be applied to given types;
readFile();
required: ArrayList<String>
found: no arguments
reason: actual and formal argument lists differ in length
1 error
任何试图纠正它的行为似乎都会使情况变得更糟。
这是似乎与错误相关的代码部分。
private void buttonLoadStoredContractsActionPerformed(java.awt.event.ActionEvent evt) {
readFile();
}
我已经跳过了一些部分,以便不提供大量代码来阅读
protected void readFile(ArrayList<String> listContractors)
{
BufferedReader reader = null;
//ArrayList showContract = new ArrayList();
try
{
reader = new BufferedReader(new FileReader("Pest.txt"));
String nLine = reader.readLine();
while (nLine != null)
{
listContractors.add(nLine);
String [] rows = nLine.split("-");
for (String s: rows)
{
System.out.println(s);
}
nLine = reader.readLine();
}
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
displayStoredContracts(listContractors);
}
protected void displayStoredContracts(ArrayList<String> listContractors)
{
for (int i = 0; i < listContractors.size(); i++)
{
txtAreaSavedContracts.append((String) listContractors.get(i));
}
}
如果有任何 希望查看整个代码,那么它位于pastebin中 - full code。我使用的是gui构建器,因为我只是一个初学者并且有最后期限可以满足 - 因此很多这将是混乱的。我只是把它放在想要的地方。
答案 0 :(得分:1)
很容易找到,您的方法签名表明,方法protected void readFile(ArrayList<String> listContractors)
只接受java.util.ArrayList
String
类型。但是当你调用方法时,你没有传递任何参数,你可以通过readFile();
调用方法。您应该已将ArrayList作为方法参数传递。
ArrayList<String> list= new ArrayList<String>();
list.add("asd");
(根据需要)readFile(list)
; 希望,它会帮助你。
N.B。我不认为方法readFile
的定义是正确的。它不应该将ArrayList<String>
作为形式参数。它必须在方法块中创建此ArrayList
的实例,并在方法边界内向其添加元素。