我与另一个构造函数调用构造函数有一个错误
问题描述:
使用下面的代码是最接近任何解决方案我不断收到一个错误说“(”或“[”预期和在“;”预期。不敢肯定我错过了什么我与另一个构造函数调用构造函数有一个错误
public class Manager extends SalariedSubordinate implements IManager{
private ArrayList<ISubordinate> listOfSubordinates;
private double managerBonusFund = 5000;
private double baseSalary;
public Manager(double baseSalary, IManager manager, ArrayList<ISubordinate> subordinates) {
this.baseSalary = baseSalary;
this.manager = manager;
this.listOfSubordinates = subordinates;
}
public Manager(double baseSalary, IManager manager){
this(baseSalary, manager, new ArrayList<ISubordinate> subordinates);
}
答
当你创建一个新的空数组列表,你通常会做这样的:
new ArrayList<SomeType>();
对不对?
那你为什么还要写
new ArrayList<ISubordinate> subordinates
当你通过一个新的数组列表构造? ()
在哪里?为什么添加单词subordinate
?
所以只需要添加的()
和删除单词subordinate
:
this(baseSalary, manager, new ArrayList<ISubordinate>());
答
你的第二个构造函数应该有如下。
public Manager(double baseSalary, IManager manager){
this(baseSalary, manager, new ArrayList<ISubordinate>());
}
+0
谢谢你 – lorddalek
答
回答已发布在here(); ...您应该看看创建ArrayList的正确方法,并更深入地理解它。 https://www.tutorialspoint.com/java/java_arraylist_class.htm
'new ArrayList下属不是你如何初始化一个新的'List',mabye试着用'new ArrayList ()' –
SomeJavaGuy