所以我正在尝试向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));
}
}
答案 0 :(得分:1)
这是因为您没有确切地定义name
cusip
和ticker
到底是什么。你应该先在某处声明它们。
示例:
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
类中定义变量cusip
,ticker
和mainClass
,因此编译器会在此处生成错误。< / p>
但是,您甚至不能在ETF
构造函数中使用这3个参数。
我会做以下事情之一:
main
,以便将这些变量传递给构造函数。构造函数只需复制值。