Алмазный оператор компилирует под 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), и проблема была решена для меня.

1 3

1 ответ:

Я обновил до последней версии SunJDK / Java (1.7.0_13) и проблема решена.