由于某种原因,我只是想不出如何调用顶部的变量的底部两个方法。当我做initalizeString(String [] names); 我总是得到.class的期望。不太确定我在调用该方法时在做什么错。
import java.util.Scanner;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class SoftDrinkInventory {
static final int MAXSIZE = 100; // maximum size of 100
private String[] names; // softdrink names
private String[] ids; // softdrink identifications
private int[] startingInventory; // starting inventory of the softdrinks
private int[] finalInventory; // final inventory of the softdrinks
private int[] transactionCounts; // number of transactions per softdrink
private int trueSize; // total number of softdrinks
public SoftDrinkInventory() {
// call initalizeString for names/ids
// call initializeInt for inventory/transaction counts
}
private void initializeInt(int[] a) {
a = new int[MAXSIZE];
for(int i = 0; i <= MAXSIZE; i++) {
a[i] = 0;
}
}
private void initializeString(String[] s) {
s = new String[MAXSIZE];
for(int i = 0; i <= MAXSIZE; i++) {
s[i] = "";
}
}
}
解决您的特定问题:使用initializeString(names)
代替initalizeString(String[] names)
。但是您的程序无法按预期运行。Java按值传递方法参数。这意味着您可以s
在initializeString(String[])
方法中重新分配参数,但这不会影响该names
字段。
此外,如果您创建一个new int[MAXSIZE]
,则0
默认情况下该数组将包含100个值。您不必手动设置它们。最后但并非最不重要的一点是,您应该考虑使用Collections框架,尤其是List
接口,而不是数组。它很容易使用,而且没有明显的缺点。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句