Уровень соответствия jdk7: как перенести исходный код с 6 на 7 - PullRequest
2 голосов
/ 21 февраля 2012

Я ищу способ отправки предупреждений javac для источника кода, который можно перенести с уровня 6 на уровень 7, чтобы я мог получить код для режима уровня 7?

Ответы [ 3 ]

2 голосов
/ 21 февраля 2012

Я читаю вопрос как «как я могу обнаружить код, который можно перенести из парадигм Java 6 в парадигмы Java 7». Примерами могут быть использование оператора diamond:

List<Foo> bar = new ArrayList<>(); // instead of new ArrayList<Foo>()

и мультивыбор:

try { }
catch (FooException | BarException e) { }
/*
Instead of:
catch (FooException e) { }
catch (BarException e) { }
*/

В этом случае средство проверки стиля исходного кода (например, PMD и т. Д.) Должно быть в состоянии выделить эти возможности.

Например, плагин NetBeans EasyPMD обычно помечает эти два конкретных случая (а также другие, я уверен) и предлагает предложения для преобразования в эквиваленты JDK 7. При обнаружении структуры кода, предшествующей JDK-7, она выделяется значком предупреждения, а щелчок по значку дает предлагаемый рефакторинг для эквивалента JDK-7.

Полагаю, это не является частью процесса компиляции как такового (хотя вы можете автоматизировать его как часть процесса сборки, например, с помощью Ant), но это следующая лучшая вещь.

1 голос
/ 21 февраля 2012

Эта статья должна вам помочь:

http://www.oracle.com/technetwork/java/javase/compatibility-417013.html

Однако несовместимости должны быть незначительными.Ваш первый шаг должен состоять в том, чтобы скомпилировать ваш исходный код с помощью компилятора Java 7.

Пройдя по статье, я бы сказал, что главной несовместимостью на уровне языка является разница в поведении с унаследованными исключениями (второй элемент в списке).Остальные различия в библиотеках.

0 голосов
/ 23 февраля 2012

решение

По сути, вы можете настроить Eclipse для выдачи предупреждений для определенных функций JDK 7, которые можно использовать

...