希望这不是重复的,我已经搜索并发现了一些相关问题,但与 Java 中的差异无关。
private List<Stuff> apps = new ArrayList<Stuff>();
// compiles under both
private List<Stuff> apps = new ArrayList<>();
// compiles under OpenJDK 7
// SunJDK 7 Error raised is : Syntax error on token "<", ? expected after this token
任何想法为什么会这样?我喜欢在我的 *nix 服务器和开发盒上使用 OpenJDK,但有时我使用别人的 Windows 笔记本电脑进行开发和测试,这是我第一次在两个版本之间遇到问题。将不胜感激任何建议或想法!
我还使用 Netbeans 7.2(它不会在 Windows 或 Debain 上标记错误)。该程序使用 Play Framework 1.2.5 并将 java 源设置为 1.7。
javac -version
javac 1.7.0_01
和
java -version
java version "1.7.0_01"
Java<TM> SE Runtime-Environment <build 1.7.0_01-b08>
并在所有我能告诉的地方检查了 Netbeans 的来源是 1.7。通过命令行编译产生了上述相同的错误。
回答?
我更新到最新版本的 SunJDK/Java (1.7.0_13) 并且为我解决了这个问题。