简体   繁体   中英

Adding items to an Arraylist

So i am trying to add items to an arraylist, However when I try to write the add method the IDE gives me an error that I'm passing "name, cusip and ticker wrong. Can someone explain to me what I am doing wrong here? Thank you in advance.

Here is my ETF class

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;

    }
}

And here is my main class

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));
        }
    }

It's because you're not defining what exactly name cusip and ticker are. You should declare them somewhere first.

Example:

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));
    }
}

You also need to rewrite your constructor for those arguments to be accepted:

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

Overall your ETF class could use another look-over. It's not easy to understand.

First, you haven't defined the variables name , cusip , and ticker in the mainClass class, so the compiler generates an error here.

However, you don't even use those 3 parameters in your ETF constructor.

I would do one of the following things:

  • Eliminate the parameters to the constructor, and don't pass anything into the constructor.
  • Or, move the code to ask the user for input to main , so you can pass those variables into the constructor. The constructor would simply copy the values.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM