因此,我试图将项目添加到arraylist,但是当我尝试编写add方法时,IDE给我一个错误,提示我传递“名称,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));
        }
    }

最佳答案

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

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

我将执行以下操作之一:


消除参数的构造函数,并且不要将任何东西传递给构造函数。
或者,移动代码以要求用户输入main,以便可以将这些变量传递到构造函数中。构造函数将简单地复制值。

10-07 15:24