2012-08-14 2 views
0

THis находится в главном классеВозвращение массива из метода

actionsClass actionObject = new actionsClass(tipArray, hourArray, 
    hourlyWageInput, gasArray, wageArray, incomeArray, totalHourlyEarnings, 
    totalGas, totalHours, avgGasLabel); 

actionObject.calculateTable(); 

Это мой класс, где я пытаюсь реализовать метод (там в настоящее время излишняя объявленные переменные):

import javax.swing.JButton; 
import javax.swing.JLabel; 
import javax.swing.JTextField; 

public class actionsClass { 

private JLabel hourlyWage, blank, row2, totalTips, totalHours, totalHourlyEarnings, 
totalPay, weekPay, day, totalGas, totalHoursLabel, totalTipsLabel, totalGasLabel, 
totalWageLabel, avgGas, avgGasLabel; 
private JTextField hourlyWageInput; 

private double incomeArray[] = new double[7]; 
private JTextField tipArray[] = new JTextField[7]; 
private JTextField hourArray[] = new JTextField[7]; 
private JTextField gasArray[]= new JTextField[7]; 
private JLabel wageArray[] =new JLabel[7]; 


public actionsClass() { 
} 

public actionsClass(JTextField[] tipArray, JTextField[] hourArray, 
     JTextField hourlyWageInput, JTextField[] gasArray, 
     JLabel[] wageArray, double[] incomeArray, 
     JLabel totalHourlyEarnings, JLabel totalGas, JLabel totalHours, 
     JLabel avgGasLabel) { 
    this.tipArray = tipArray; 
    this.hourArray = hourArray; 
    this.hourlyWageInput = hourlyWageInput; 
    this.gasArray = gasArray; 
    this.wageArray = wageArray; 
    this.incomeArray = incomeArray; 
    this.totalHourlyEarnings = totalHourlyEarnings; 
    this.totalGas = totalGas; 
    this.totalHours = totalHours; 
    this.avgGasLabel = avgGasLabel; 
} 

public String calculateTable(){ 
    for (int i = 0; i < 7; i++) { 
     double tipx = Double.parseDouble(tipArray[i].getText()); 
     double houry = Double.parseDouble(hourArray[i].getText()); 
     double hourlyz = Double.parseDouble(hourlyWageInput.getText()); 

     String[] wageArrayStrings = null; 

     if (houry != 0){ 
      wageArrayStrings[i] = String.format("%.2f", (hourlyz*houry+tipx)/houry); 

     } 
     else { 
      wageArrayStrings[i] = ("$ 0.00"); 
     } 

    } 
    return wageArrayStrings[]; 
} 

}

Синтаксическая ошибка при возврате wageArrayStrings []; с или без кронштейнов. Что я делаю не так?

ответ

2

Во-первых, тип возврата должен быть String[].

Затем вам нужно инициализировать массив (как @MattBall указывает, до цикла):

String[] wageArrayStrings = new String[7]; 
for (int i = 0; i < 7; i++) { 

Затем вы можете сделать

return wageArrayStrings; 
+3

N.B. массив должен быть объявлен и инициализирован вне цикла. –

+0

Это была моя основная проблема. Спасибо вам обоим! –

0

Должно быть только что возвращено wageArrayStrings; нет необходимости в квадратных скобках, а тип возврата должен быть String[] вместо String (предполагая, что ваше намерение возвращает массив строк).

0

Это должно быть просто (изменена функция возвращаемый тип тоже) -

public String[] calculateTable() { 

    //// your code. 
    return wageArrayStrings; 
} 

Кроме того, вы не инициализировали свой массив. Вы должны сделать это до цикла for.

Смежные вопросы