我正在尝试创建一个使用相同抽象类的不同类的数组列表。
但是,我收到了这个错误。
<identifier> expected, illegal start of type, package list does not exist.
图片中的所有内容。
答案 0 :(得分:2)
您的list.add
不是在构造函数或方法中发生,而只是在您的类中浮动,这是不允许的。如果您需要在类实例化时将其放在构造函数中,或者创建一个方法来将传递给它的参数添加到list
中,请尝试将其放入构造函数中。
或者对于在线实例化:(但一定要看看double brace initialisation的优点和缺点)
E.g。
public class TestEmployee {
private ArrayList<Employee> list = new ArrayList<Employee>() {{
add(new SalariedEmployee...);
add(new SalariedEmployee...);
}}
}
答案 1 :(得分:1)
实际上我看到了你的图片,发现你试图在方法或块之外的ArrayList中添加元素。
而不是在方法中写这个。
public void method() {
list.add(.........);
}
答案 2 :(得分:0)
您没有将这些语句包含在任何方法中。 list
字段的实例化很好,但是为它分配了一些值?不。把它放在一个块或方法中。
答案 3 :(得分:0)
列表类型应为:
ArrayList <? extends Employee> list = new ArrayList<>();