第一次在這裏發佈海報。我處於我的繩索末端,準備放棄我對編程職業的追求。我沒能完成我的最後一項任務,因爲我無法讓我的程序正常工作。現在,我正在自己做一些額外的練習。一個簡單的練習分配使用數組,我無法弄清楚它的最後一點。有人可以告訴我我在做什麼錯嗎?當我運行它,我可以輸入數據,但在此之前與此錯誤顯示輸出該程序退出:使用Java陣列計算
Exception in thread "main" java.lang.NullPointerException
at Payroll.getGrossPay(Payroll.java:47)
at PayrollCalc.main(PayrollCalc.java:32)
我可以分別顯示小時和payRate,但我不能顯示grossPay。我也不滿意我的構造函數,但不太確定如何處理它。這個問題需要我在Payroll類中初始化數組。
public class Payroll {
private final int NUM_EMPLOYEES = 3;
private int[] employeeId = {5658845, 4520125, 7895122}, empId, hours;
private double[] payRate, wages, grossPay;
public Payroll()
{
empId = employeeId;
}
public void setEmployeeId(int[] employeeId)
{
empId = employeeId;
}
public void setEmpHours(int[] empHoursIn)
{
hours = empHoursIn;
}
public void setEmpPayRate(double[] empPayRateIn)
{
payRate = empPayRateIn;
}
public int[] getEmployeeId()
{
return empId;
}
public int[] getEmpHours()
{
return hours;
}
public double[] getEmpPayRate()
{
return payRate;
}
public double[] getGrossPay()
{
for (int count = 0; count < NUM_EMPLOYEES; count++)
{
grossPay[count] = getEmpPayRate()[count] * getEmpHours()[count];
}
return grossPay;
}
}
進口java.util.Scanner的;
public class PayrollCalc
{
public static void main(String[] args)
{
int count;
final int NUM_EMPLOYEES = 3;
int[] empHours = new int[NUM_EMPLOYEES];
double[] empPayRate = new double[NUM_EMPLOYEES];
Scanner keyboard = new Scanner(System.in);
Payroll payroll = new Payroll();
for (count = 0; count < NUM_EMPLOYEES; count++)
{
System.out.print("Enter total hours for employee " +
payroll.getEmployeeId()[count] + ": ");
empHours[count] = keyboard.nextInt();
payroll.setEmpHours(empHours);
System.out.print("Enter pay rate for employee " +
payroll.getEmployeeId()[count] + ": ");
empPayRate[count] = keyboard.nextDouble();
payroll.setEmpPayRate(empPayRate);
}
System.out.println("\nEMPLOYEE ID\tGROSS PAY");
System.out.println("----------- ---------");
for (count = 0; count < NUM_EMPLOYEES; count++)
{
System.out.println(payroll.getEmployeeId()[count] + "\t\t" +
payroll.getGrossPay()[count]);
}
}
}
預先感謝您的幫助!
燕姿
東西不能爲空是線47哪條線是空? 「java:XX」部分是指代碼中的行號。檢查你的數組的初始化。哦,不要放棄! – keyser
@Keyser感謝您的鼓勵。現在我已經有好幾天的眼淚了。不是這個程序,而是通過我無法弄清楚的程序。但是,無法弄清楚這種簡單的東西更令人沮喪。 – speedracer