public class AccountRecord {
public static final int MAXEMPLOYEES = 2;
public static void main(String[] args) {
String[] strTemp = new String[MAXEMPLOYEES];
Double[] hourTemp = new Double[MAXEMPLOYEES];
Double[] rateTemp = new Double[MAXEMPLOYEES];
EmployeeData[] employeeRec = new EmployeeData[MAXEMPLOYEES];
EmployeeFile getEmployee = new EmployeeFile();
int count;
getEmployee.openFile();
getEmployee.readFile();
getEmployee.closeFile();
for(count = 0; count < MAXEMPLOYEES; count++) {
employeeRec[count] = new EmployeeData();
strTemp[count] = getEmployee.getFullName(count);
hourTemp[count] = getEmployee.getHours(count);
rateTemp[count] = getEmployee.getRate(count);
employeeRec[count].setName(strTemp[count]);
employeeRec[count].setHours(hourTemp[count]);
employeeRec[count].setRate(rateTemp[count]);
employeeRec[count].setGross();
employeeRec[count].setTax();
employeeRec[count].setNet();
}
上面,是我的主文件的一部分。
所以我想要的是持有一系列帐户,并在该帐户中保存员工的全名,小时和付款。我从中读取并输入文件并将这些输入存储到String的数组中以获取全名,以及一个包含小时和付费的双精度数组。
我遇到的问题出在我的&#34; employeedata&#34;目标文件:
当我尝试设置FullName,hours,payrate并打印出这些值时,我得到一个空值。
P.S。这是我第一次访问stackoverflow,第一次请求代码帮助。如果这是一个糟糕的格式,我会提前道歉,如果你需要我,我会立即为你们解决这个问题。我目前正在学习Java,所以我还没有完全掌握这门语言的知识。谢谢。
编辑:@racraman我已经设法修复了我以前的问题,现在只是一个关于效率的快速回答。正如您在上面的代码中看到的,我正在存储来自&#39; getEmployee&#34;的值。进入我的临时数组(strTemp,hourTemp,rateTemp)来保存它们。然后我将这些值存储到&#39; employeeRec [count]&#39;中。我有一种预感,有一种更好的方法可以解决我在这里尝试做的事情。有什么想法吗?答案 0 :(得分:0)
几个问题:
首先,我注意到一个结束评论&#34; * /&#34;在你的第一个for循环之后(带有的那个) System.out.println(&#34;输入名字和姓氏:&#34;); )。我认为这个循环应该注释掉 - 是吗?
其次 - 听起来很小,但最好早点使用标准 - 在Java中,类名是&#34; camel-case&#34; - 即。每个单词的开头都是大写的 - 所以&#34; EmployeeData&#34;而不是&#34; employeedata&#34;。同上变量名称,除了它们有小写的第一个字母 - 例如&#34;的firstName&#34;
实际问题是你有EmployeeData&#34;做&#34;太多 - 它既是文件,也是每个员工的价值观。所以,当你这样做时: r.openFile(); r.readFile(); r.closeFile();
您正在将文件读入变量&#34; r&#34;。但是,这些值不适用于&#34;员工[记录]&#34;变量,因为它们是与&#34; r&#34;
无关的不同对象您应该做的是将EmployeeData拆分为两个类: - 类EmployeeFile来封装所有文件处理,和 - 类Employee保存每个员工的属性