JavaRush/Java блог/Java Developer/Вопросы о JDK, SDK, и Project Language Level
Артур
24 уровень

Вопросы о JDK, SDK, и Project Language Level

Статья из группы Java Developer
участников
Добрый день! У меня стоял Project SDK 10 и language Level 7. Недавно столкнулся с такой проблемой:
Вопросы о JDK, SDK, и Project Language Level - 1
Ввиду этого начал читать и разбираться в версиях всего, что указал в заголовке к посту. В итоге установил версию JDK 11, затем решил проблему путем установки Project Structure -> Project Settings -> Modules -> Language level на 11 Но до конца я так и не понял, что к чему. Я буду очень благодарен, если вы подскажете мне ответы на следующие вопросы:
  1. Последняя версия JDK - 11?
  2. Что определяют Project SDK и Project Language level?
  3. Должны ли соответствовать друг другу Project SDK и Poject Language Level?
  4. Как понять, когда нужно менять Project Language Level и Modules -> Language Level?
Заранее огромное спасибо!
Комментарии (3)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Стас Пасинков Software Developer в Zipy Master
2 апреля 2019, 08:26
Alt+Enter помогает))
Philip J. Backend Developer Expert
9 февраля 2019, 15:25
1. Да, 11 2. SDK - это просто набор библиотек, которые составляют ядро разработки. От версии SDK будет зависеть, какие библиотеки и классы ты сможешь использовать, а какие нет. Как правило, их становится только больше с каждой новой версией SDK, так как старые оставляют для обратной совместимости и помечают @Deprecated. Poject Language Level всего лишь определяет какие плюшки будут доступны в редакторе кода. Например, на уровне 4 Idea не будет работать с аннотациями, а на уровне 7 - со Stream Api. То есть это только фича для редактора на саму программу никакого влияния она не оказывает. 3. Не должны, если поставить уровень 7, и не пользоваться библиотеками, введёнными в JDK 8+, никаких проблем не будет. Но проще поставить одно и то же и не париться. 4. Когда пытаешься использовать фичу, уровень которой выше, чем тот, что выставлен в настройках. В итоге: ставь тот же Poject Language Level что и версия JDK, и не парься.
Артур
Уровень 24
12 февраля 2019, 08:29
Огромное спасибо!