我尝试使用链表创建程序。
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'
请帮忙。
答案 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。
顺便说一句,你应该为你的班级找到另一个与你的业务有关的名字。