Java列表 - 期望的标识符

时间:2014-10-11 18:08:13

标签: java

我尝试使用链表创建程序。

package com.delta.memory;

import java.util.ArrayList;

/**
 * Lists
 */
public class Lists {

    ArrayList<String> DaysOfTheWeek = new ArrayList<String>();

    DaysOfTheWeek.add("Sunday");
    DaysOfTheWeek.add("Tuesday");
    DaysOfTheWeek.add("Wednesday");
    DaysOfTheWeek.add("Thursday");

    DaysOfTheWeek.add(1, "Monday");

}

但它会产生以下编译错误:

Error:(11, 22) error: <identifier> expected
Error:(11, 23) error: illegal start of type

还有一个警告:

Cannot resolve symbol 'add'

请帮忙。

2 个答案:

答案 0 :(得分:2)

您的代码应该在方法中。

public class Lists {

    public static void main (String[] args)
    {
        ArrayList<String> DaysOfTheWeek = new ArrayList<String>();

        DaysOfTheWeek.add("Sunday");
        DaysOfTheWeek.add("Tuesday");
        DaysOfTheWeek.add("Wednesday");
        DaysOfTheWeek.add("Thursday");

        DaysOfTheWeek.add(1, "Monday");
    }
}

答案 1 :(得分:1)

您无法直接在班级内执行代码。它应该在方法内或静态块中:

import java.util.ArrayList;

/**
 * Lists
 */
public class Lists {

    private static List<String> daysOfTheWeek = new ArrayList<String>();

    static {
        daysOfTheWeek.add("Sunday");
        daysOfTheWeek.add("Tuesday");
        daysOfTheWeek.add("Wednesday");
        daysOfTheWeek.add("Thursday");
    }
}

在Java中,静态keywork指示字段或方法直接到Class,然后在其所有实例中共享。换句话说,它不是由对象实例管理,而是由定义类本身管理。

使用static,您可以 - 如您所示 - 为类的任何实例提供全局初始化。在您的cas中,您的daysOfWeek列表将可用于您的所有列表实例。

注1:要静态填充列表,我必须将其声明为静态。 注2:我没有将列表声明为arrayList,而是将其声明为List - 一种更通用的类型,并将其创建为ArrayList。

顺便说一句,你应该为你的班级找到另一个与你的业务有关的名字。