【问题标题】:Returning an array from a method从方法返回数组
【发布时间】:2012-08-14 00:19:25
【问题描述】:

这是在主类中

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[];
}

}

返回工资数组字符串[]存在语法错误;带或不带括号。我做错了什么?

【问题讨论】:

    标签: java arrays swing methods


    【解决方案1】:

    首先,返回类型应该是String[]

    然后你需要初始化数组(正如@MattBall 指出的,在循环之前):

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

    那你就可以了

    return wageArrayStrings;
    

    【讨论】:

    • 注:数组应该在循环之外声明和初始化。
    • 这是我出现的主要问题。谢谢你们!
    【解决方案2】:

    应该只是返回wageArrayStrings;不需要方括号,返回类型应该是String[] 而不是String(假设您的意图是返回字符串数组)。

    【讨论】:

      【解决方案3】:

      应该只是(也改变了函数返回类型)-

      public String[] calculateTable () {
      
          //// your code.
          return wageArrayStrings;
      }
      

      另外,你还没有初始化你的数组。您应该在 for 循环之前执行此操作。

      【讨论】:

        猜你喜欢
        • 2014-12-14
        • 2013-01-02
        • 1970-01-01
        • 2021-11-25
        • 2014-11-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多