【问题标题】:Why is my constructor not initializing a variable correctly?为什么我的构造函数没有正确初始化变量?
【发布时间】:2018-03-07 03:13:44
【问题描述】:

所以我正在尝试读取文件并创建这些对象的 arralist。文件中的对象数是我希望设置的 numItems 变量,但我收到错误消息。

public class Warehouse
{
// instance variables (fields)  
private final static int MAX = 60;
private ArrayList <Item> stock;
private int numItems;

// the constructor
public Warehouse()
{
    stock = new ArrayList<Item>();
    numItems = loadData();
}


public int loadData(File infile) throws IOException
{
    Scanner in = new Scanner (infile);
    int number = 0;

    while(in.hasNext())
    {
        String item = in.nextLine();
        String [] items = item.split(" ");
        String itemNum = items[0];
        String itemName = items[1];
        int onHand = Integer.parseInt(items[2]);
        int committed = Integer.parseInt(items[3]);
        int onOrder = Integer.parseInt(items[4]);
        double price = Double.parseDouble(items[5]);
        int reOrderPt = Integer.parseInt(items[6]);
        int econOrder = Integer.parseInt(items[7]);
        stock.add(number, new Item(itemNum, itemName, onHand, committed, onOrder, price, reOrderPt, econOrder));
        number++;
    }

    return number;
}  

这是我读取文件并将其传递给 loadData 方法的主要内容:

public static void main(String args[]) throws IOException
{
    // complete the main by adding the necessary variables and statements
    int choice;

    Scanner kb = new Scanner(System.in);
    Warehouse inStock = new Warehouse();
    String number = "";
    int amount = 0;

    File infile = new File("inventory.txt");
    inStock.loadData(infile);

【问题讨论】:

  • “我收到错误”不是问题描述,编译器错误也不是“我的构造函数未正确初始化变量”的示例。
  • int loadData(File infile) -- 你不能把它称为numItems = loadData();,你必须用File参数调用它。

标签: java arraylist compiler-errors


【解决方案1】:
  1. 您收到错误消息,因为 loadData() 需要 File 参数,而您没有传递任何参数。
  2. 既然可以拨打ArrayList.size(),为什么还需要跟踪商品数量?

【讨论】:

  • 我正在从我的主文件传递文件
  • numItems = loadData(); 文件在哪里?
  • 我更新了问题以显示我从哪里加载它
  • 您的 Warehouse 构造函数中的调用仍然不正确。
  • 你根本不需要numItems。只要您需要该信息,请联系stock.size()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-09
相关资源
最近更新 更多