首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >arraylist初始化错误

问arraylist初始化错误
EN

Stack Overflow用户
提问于 2013-10-12 05:55:07
回答 3查看 10.4K关注 0票数 3

我在初始化ArrayLists时遇到了问题。

当我使用NetBeans 7.3时,我尝试这样做:

代码语言:javascript
复制
protected Stack<Scope> scopeStack;
protected ArrayList<Scope> allScopes;
scopeStack = new Stack<>();
allScopes = new ArrayList<>();

该文件经过了完美的编译,运行正常。

但是当我切换到linux时,使用命令行来编译java。它给了我一个错误

代码语言:javascript
复制
src/SymbolTable.java:28: illegal start of type scopeStack = new Stack<>();      
SymbololTable.java:29: illegal start of type allScopes = new ArrayList<>();

这是由不同版本的java编译器引起的吗?或者造成这种情况的原因是什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-12 05:59:23

我猜测您在Netbeans中使用的是Java 1.7,在Linux上使用的是Java 1.6。

“菱形运算符”只是在Java7中引入的。

使用javac -version查看您正在运行的编译器的版本。

票数 10
EN

Stack Overflow用户

发布于 2013-10-12 05:59:15

如果您使用的是Java 6,则需要在初始化时定义类型,如下所示:

代码语言:javascript
复制
scopeStack = new Stack<Scope>();
allScopes = new ArrayList<Scope>();
票数 2
EN

Stack Overflow用户

发布于 2013-10-12 05:58:56

您应该在new调用中指定集合的类型,并在适当的位置初始化字段。尝试以下任一操作:

初始化字段内联

代码语言:javascript
复制
protected Stack<Scope> scopeStack = new Stack<Scope>();
protected ArrayList<Scope> allScopes = new ArrayList<Scope>();

初始化构造函数中的字段的

代码语言:javascript
复制
public class MyClass {
  protected Stack<Scope> scopeStack;
  protected ArrayList<Scope> allScopes;

  public MyClass() {
    scopeStack = new Stack<Scope>();
    allScopes = new ArrayList<Scope>();
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19327860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档