Ну, есть несколько причин.Единственное, на что я хотел бы обратить внимание - это развертывание в корпоративной среде.
Допустим, в вашей компании работают тысячи обслуживаемых машин, вы просто не можете установить каждую отдельную версию Java на каждом компьютере.Кроме того, безопасность обычно не позволяет скачивать (часто вообще не имеет прямого доступа к Интернету), и необходимо поддерживать каждую доступную версию Java в отношении безопасности - с большим количеством документов и обсуждений (например, безопасности).
Botomline - это: На предприятии у вас очень ограниченный набор доступных версий Java и зачастую нет передового края.
Теперь предположим, что доступной версией является Java 8. Теперь, если вы хотитеприложение, которое нужно запустить в среде, вы должны убедиться, что оно действительно работает в доступной версии (например, Java 8).Если он будет использовать что-то, что недоступно в этой версии, он просто не будет работать или зависать.По сути, такое приложение просто не может быть использовано на предприятии.Это означает, что предприятие будет искать другое решение, которое оно может использовать в своей среде.
Таким образом, возможность сообщить компилятору целевую версию очень помогает в создании приложения, которое может и будет фактически использоваться (и не аварийно завершает работу на компьютере пользователя).