Java 读取文件,并基于读取的数据实例化具有属性的对象
我试图从文件中导入数据,并从中创建对象,然后将其存储到数组中。我是一个初学者,我不知道我做错了什么 我收到6个错误:Java 读取文件,并基于读取的数据实例化具有属性的对象,java,Java,我试图从文件中导入数据,并从中创建对象,然后将其存储到数组中。我是一个初学者,我不知道我做错了什么 我收到6个错误: .\Employees.java:92:错误:应为类、接口或枚举 } ^ java:24:错误:找不到符号 objectArray[counter]=setFirstName(firstNameEmployee) 符号:方法setFirstName(字符串) 地点:班级雇员考试 java:26:错误:找不到符号 objectArray[counter]=setLastName(l
This is my objects class
public class Employees {
private String firstName;
private String lastName;
private double age;
private double hourlySalary;
private double weeklyhoursworked;
private double weeklysalary;
public void setFirstName(String EmployeeFirstName) {
firstName = EmployeeFirstName;
return;
}
public void setLastName(String EmployeeLastName){
lastName = EmployeeLastName;
return;
}
public void setAge(double EmployeeAge){
age = EmployeeAge;
return;
}
public void setHourlySalary(double EmployeeHourlySalay){
hourlySalary = EmployeeHourlySalay;
calculateWeeklySalary(weeklyhoursworked);
return;
}
public void setWeeklyHoursWorked(double EmployeeWeeklyHoursWorked){
weeklyhoursworked = EmployeeWeeklyHoursWorked;
return;
}
public String getFirstName(){
return firstName;
}
public String getLastName(){
return lastName;
}
public double getAge(){
return age;
}
public double getHourlySalary(){
return hourlySalary;
}
public double getWeeklyHourlyWorked(){
return weeklyhoursworked;
}
public double getWeeklySalary(){
return weeklysalary;
}
public void calculateWeeklySalary(double hoursWorked) {
weeklysalary = (hoursWorked * hourlySalary);
return;
}
}
这是我的主程序,我尝试导入数据,将其转换为对象,然后将其存储为数组
import java.io.*;
public class Employeetest
{
public static void main(String[] args) throws Exception
{
String firstNameEmployee = "null";
String lastNameEmployee = "null";
double ageEmployee;
double hourlySalaryEmployee;
double weeklyhoursworkedEmployee;
double weeklySalaryEarnedEmployee;
int counter = 0;
Employees objectArray[] = new Employees[counter + 1];
FileReader fr = new FileReader("Employeedata.txt");
BufferedReader br = new BufferedReader(fr);
counter = 0;
while ((firstNameEmployee = br.readLine()) != null) {
objectArray[counter] = setFirstName(firstNameEmployee);
lastNameEmployee = br.readLine();
objectArray[counter] = setLastName(lastNameEmployee);
ageEmployee = Double.parseDouble(br.readLine());
objectArray[counter] = setAge(ageEmployee);
hourlySalaryEmployee = Double.parseDouble(br.readLine());
objectArray[counter] = setHourlySalary(hourlySalaryEmployee);
weeklyhoursworkedEmployee = Double.parseDouble(br.readLine());
objectArray[counter] = setWeeklyHoursWorked(weeklyhoursworkedEmployee);
System.out.println(objectArray[counter]);
counter++;
}
br.close();
System.exit(0);
}
}
无法识别的错误,是否有明显的问题?问题
您正在调用未先访问对象就无法访问的方法
继续:
while ((firstNameEmployee = br.readLine()) != null) {
objectArray[counter] = setFirstName(firstNameEmployee);
lastNameEmployee = br.readLine();
objectArray[counter] = setLastName(lastNameEmployee);
ageEmployee = Double.parseDouble(br.readLine());
objectArray[counter] = setAge(ageEmployee);
hourlySalaryEmployee = Double.parseDouble(br.readLine());
objectArray[counter] = setHourlySalary(hourlySalaryEmployee);
weeklyhoursworkedEmployee = Double.parseDouble(br.readLine());
objectArray[counter] = setWeeklyHoursWorked(weeklyhoursworkedEmployee);
System.out.println(objectArray[counter]);
counter++;
}
我们来看看这个代码块。
首先,从文件中读取一个值并将其分配给变量。然后,将其指定给对象。。。这就是问题的症结所在
这就是你所拥有的
objectArray[counter] = setLastName(lastNameEmployee);
要修复此问题,只需将具有上述方法的所有行更改为
objectArray[counter].setLastName(lastNameEmployee);
另一个例子
而不是
objectArray[counter] = setAge(ageEmployee);
做
修复空指针异常
for(int x =0; x< objectArray.length;x++)
{
objectArray[x] = new Employees();
}
原因是对象数组中的对象一开始是空的。因此,您需要先实例化它们,然后才能改变它们的实例变量。每行前面有4个空格,以便将其变成一个代码段。它使代码更易于阅读更重要的是,您会遇到哪些错误?您的代码一点也不清楚。你可以缩进它。这是我得到的错误,我会编辑这篇文章,使我的代码更清楚。java:83:error:class、interface或enum应为}^1 error转到Employeetest.java的第83行,您将发现问题。你还没有给我们看那一段代码。这个错误远非“无法识别”。我明白了,谢谢,我仍然有一个错误\Employees.java:92:error:class、interface或enum应为}^1 error是我还是数组的大小为1,因为计数器为=0哪一行是92?很抱歉,我没有看到对象类中有一个额外的括号。知道是什么导致了这个错误吗?Employeetest.main(Employeetest.java:24)处线程“main”java.lang.NullPointerException中的异常哪一行是第24行
for(int x =0; x< objectArray.length;x++)
{
objectArray[x] = new Employees();
}
BufferedReader br = new BufferedReader(fr);