【发布时间】:2019-03-12 13:27:55
【问题描述】:
我正在尝试将一个从文件创建的对象保存到一个数组列表中,但在三类程序中执行此操作时遇到了麻烦。我收到一条错误消息,告诉我创建构造函数,但是当我自动创建它们时,我收到一条错误消息:Constructor cannot be applied to given types。我不确定这意味着什么。简而言之 - 我已经在这件事上做了好几个小时了,但无法弄清楚。
public class Darbuotojas {
String vardas;
String pareigos;
int gm;
Float atlyginimas;
public Darbuotojas(String vardas, String pareigos, int gm, Float atlyginimas){
this.vardas = vardas;
this.pareigos = pareigos;
this.gm = gm;
this.atlyginimas = atlyginimas;
}
}
这是我读取文件的代码,并尝试将 Objects Darbuotojas 放入 ArrayList:
public class Viskas extends Darbuotojas{
String gm1;
String atlyginimas1;
ArrayList<Darbuotojas> darbuotojai = new ArrayList<Darbuotojas>();
public void failas(String fl) throws IOException{
//Failu nuskaitymas po zodi
File file = new File(fl);
try {
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(file)));
String line = null;
while ((line = br.readLine()) != null){
String [] tokens = line.split("/");
vardas = tokens[0];
pareigos = tokens[1];
gm1 = tokens[2];
gm = Integer.parseInt(gm1);
atlyginimas1 = tokens[3];
atlyginimas = Float.parseFloat(atlyginimas1);
System.out.print(vardas.toUpperCase() + " ");
System.out.print(pareigos.toUpperCase() + " ");
System.out.print(gm + " ");
System.out.println(atlyginimas);
Darbuotojas drb = new Darbuotojas(vardas,pareigos,gm,atlyginimas);
darbuotojai.add(drb);
System.out.println(drb);
}
br.close();
}
catch(FileNotFoundException e){
}
}
}
这里是 main 函数:
public static void main(String[] args) throws IOException {
Scanner kb = new Scanner(System.in);
System.out.println("Iveskite duomenu vailo pavadinima su failo tipu: ");
String fl = kb.next();
Viskas ddd = new Viskas();
ddd.failas(fl);
}
我很抱歉所有变量都是立陶宛语,但我认为它不会改变任何代码可读性。
【问题讨论】:
-
在
while循环中,您是如何声明vardas和pareigos变量的? (在vardas = tokens[0]和pareigos = tokens[1]中。您能否发布完整的错误消息,以便我们查看构造函数有什么问题? -
感谢您的回答,@AL-un,我没有在循环中声明它们,因为我在“Darbuotojas”类中对它们进行了处理。完整消息为:“ Darbuotojas 类中的 construcotr Darbuotojas 不能应用于给定类型;必需:String、String、int、Float;发现:无参数;原因:实际参数列表和形式参数列表的长度不同。”
标签: java class arraylist methods constructor