-4

我正在尝试创建一个使用相同抽象类的不同类的数组列表。

但是,我收到此错误。

<identifier> expected, illegal start of type, package list does not exist.

都在图里。

4

4 回答 4

2

list.add不是在构造函数或方法中发生,而只是在您的类中浮动,这是不允许的。如果您需要它在类实例化时发生,请尝试将其放入构造函数中,或者创建一个方法以将传递给它的参数添加到您的list.

或者用于内联实例化:(但请务必查看双括号初始化的优缺点)

例如

public class TestEmployee {

    private ArrayList<Employee> list = new ArrayList<Employee>() {{
        add(new SalariedEmployee...);
        add(new SalariedEmployee...);
    }}

}
于 2013-04-01T16:47:25.583 回答
1

其实我看到你的图片,发现你正在尝试在方法或块之外添加ArrayList中的元素。

而不是这个在方法中写这个。

public void method() {
   list.add(.........);
}
于 2013-04-01T16:51:17.177 回答
0

列表类型应为:

ArrayList <? extends Employee> list = new ArrayList<>();
于 2013-04-01T16:56:00.327 回答
0

您没有将这些语句包装在任何方法中。字段的实例化list很好,但是给它分配一些值?不。把它放在一个块或方法中。

于 2013-04-01T16:47:23.433 回答