将项目添加到Arraylist

时间:2015-04-16 17:05:18

标签: java arraylist

所以我正在尝试向arraylist添加项目,但是当我尝试编写add方法时,IDE会给我一个错误,我正在传递“name,cusip和ticker错误。有人可以向我解释我是什么在这里做错了?先谢谢你。

这是我的ETF课程

package fundProject;

import java.util.Scanner;


public class ETF extends AbstractETF {
    private String name;
    private int cusip;
    private int ticker;


    public ETF(String name, int cusip, int ticker) {
        this.name = getName();
        this.cusip = getCusip();
        this.ticker = getTicker();


    }


    public int getCusip() {
        System.out.println("Please enter the Cusip of the ETF");
        Scanner sc = new Scanner(System.in);
        cusip = sc.nextInt();
        return cusip;
    }

    public int getTicker() {
        System.out.println("Please enter the Ticker of the ETF");
        Scanner sc = new Scanner(System.in);
        ticker = sc.nextInt();
        return ticker;
    }

    public String getName() {
        System.out.println("Please enter the Name  of the ETF");
        Scanner sc = new Scanner(System.in);
        name = sc.next();
        return name;

    }
}

这是我的主要课程

package fundProject;

import java.util.ArrayList;


public class mainClass {



    public static void main(String[] args) {

        ArrayList<ETF> etfArrayList = new ArrayList<ETF>();

        etfArrayList.add(new ETF(name, cusip, ticker));
        }
    }

2 个答案:

答案 0 :(得分:1)

这是因为您没有确切地定义name cusipticker到底是什么。你应该先在某处声明它们。

示例:

public static void main(String[] args) {

    ArrayList<ETF> etfArrayList = new ArrayList<ETF>();
    String name = "John Doe";
    int cusip = 1;
    int ticker = 1;

    etfArrayList.add(new ETF(name, cusip, ticker));
    }
}

您还需要为要接受的参数重写构造函数:

public ETF(String name, int cusip, int ticker) {
    this.name = name;
    this.cusip = cusip;
    this.ticker = ticker;
}

总体而言,您的ETF类可以使用另一种查找方式。这不容易理解。

答案 1 :(得分:1)

首先,您尚未在name类中定义变量cusiptickermainClass,因此编译器会在此处生成错误。< / p>

但是,您甚至不能在ETF构造函数中使用这3个参数。

我会做以下事情之一:

  • 删除构造函数的参数,不要将任何内容传递给构造函数。
  • 或者,移动代码以询问用户输入main,以便将这些变量传递给构造函数。构造函数只需复制值。