Алмазный оператор компилирует под OpenJDK, но не SunJDK 7
Надеюсь, это не дубликат, я искал и нашел некоторые из них со связанными проблемами, но не о различиях в 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
Есть идеи, почему это так? Мне нравится использовать OpenJDK на моих серверах *nix и коробках dev, но иногда я использую чей-то ноутбук Windows для разработки и тестирования, и это первый раз, когда у меня возникли проблемы между двумя версиями. Буду признателен за любые советы или мысли!
Также я использую Netbeans 7.2 (который не помечает ошибку на Windows или Дебейн). Программа использует платформу 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), и проблема была решена для меня.