Очевидный недостаток на данный момент, который я обнаружил в своем приложении (которое было написано на Java 7 для начала), заключается в том, что у большинства людей нет 7, и чтобы его получить, нужно приложить немало усилий. По умолчанию Страница загрузки Java на момент написания статьи все еще указывает на Java 6, а не на 7, и в большинстве современных дистрибутивов Linux, по-видимому, также установлено 6 по умолчанию. Ubuntu 11.10 является первым, кто даже имеет Java в своем хранилище.
Также, что касается Ubuntu, я заметил одну вещь: даже если Java 7 установлена, Я не нашел чистого способа проверить, является ли он значением по умолчанию (и снова Скорее всего, это не так.) Я просто использую сценарий оболочки, который анализирует вывод из update-alternatives --query java
и запускает его соответствующим образом.
С моей стороны было сознательным решением перейти с 7, потому что в нем было много новых функций, которыми я мог бы воспользоваться, и к тому времени, когда приложение фактически достигло точки, в которой я бы рассмотрел его из альфа / бета Надеюсь, что Java 7 обретет больше опоры, чем в любом случае!
Преимущества в значительной степени заключаются в использовании дополнительных функций - я обнаружил, что конструкция try with resources сделала большую часть моего кода более удобной для чтения (нет больше вложенных элементов try / finally внутри try / catches) и Я также использую некоторые дополнительные API, такие как API Filewatcher. Мне также очень нравится тот факт, что JComboBox и лежащие в его основе модели теперь являются общими, что позволяет сэкономить немало средств приведения в приложениях Swing.
Короче говоря, если вы на самом деле не собираетесь использовать какие-либо функции Java 7 и просто обновляетесь до чертиков, у вас мало мотивации для этого, пока Java 7 по крайней мере не станет немного более устоявшийся Это сделало мой код несколько чище и помогло с некоторыми дополнительными библиотеками, но также вызвало немало головных болей.