我尝试编写一个小程序,但无法编译。 Eclipse在最后一行显示以下错误:
令牌上的语法错误,未正确放置
结构体)
令牌“ 200000”上的语法错误,已删除
这个令牌
import java.util.ArrayList;
public class Books{
ArrayList<String> booksDB = new ArrayList<String>();
booksDB.ensureCapacity(200000); //Compilation Errors
}
最佳答案
public class Books{
ArrayList<String> booksDB = new ArrayList<String>();
booksDB.ensureCapacity(200000); //Compilation Errors
}
您可能会觉得该代码是按顺序执行的(从上到下),但事实并非如此。您正在做的是创建一个名为
booksDB
的私有实例字段,每个Books
实例都将携带该实例字段。最有可能的是,您希望该代码进入Books构造函数(每当创建
new
的Books
实例时都会调用该构造函数。请尝试以下操作:public class Books {
private ArrayList<String> booksDB; // this is a field of the Books class
// when we create a new Books instance, we will initialize the booksDB field
public Books() {
booksDB = new ArrayList<String>();
booksDB.ensureCapacity(20000);
}
}
然后使用如下:
public class Main {
public static void main(String[] args) {
Books b = new Books(); // the Books object is constructed, and its private field booksDB is initialized as we specified.
}
}