我在初始化ArrayLists时遇到问题.
当我使用NetBeans 7.3时,我尝试这样做:
protected Stack<Scope> scopeStack;
protected ArrayList<Scope> allScopes;
scopeStack = new Stack<>();
allScopes = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
该文件完美编译,并且很好.
但是当我使用命令行切换到linux来编译java时.它给了我一个错误
src/SymbolTable.java:28: illegal start of type scopeStack = new Stack<>();
SymbololTable.java:29: illegal start of type allScopes = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
这是由不同版本的java编译器引起的吗?或者造成这种情况的原因是什么?
Bor*_*der 10
我猜想在Netbeans中你使用的是Java 1.7,而在Linux上你使用的是Java 1.6.
"钻石操作员"仅在Java 7中引入.
使用javac -version看你运行的是什么版本的编译器.