Почему возникает ошибка «as of release 10, 'var' is a restricted local variable type and cannot be used for type declarations or as the element type»?
Предыдущей проект писал на Java 11 и Spring, везде использовал ключевое слово var для объявления локальных переменных и никаких проблем это не вызывало.
Решил для разнообразия попробовать Java EE стек, пока на тестовом проекте. Но при попытке в сервлете объявить локальную переменную через ключевое слово var приводит к ошибке "java: as of release 10, 'var' is a restricted local variable type and cannot be used for type declarations or as the element type of an array". Причем ошибка возникает только на этапе запуска томката, IDE её не видит и считает, что все норм. Если заменить var на тип переменной - то все работает. Пробовал на Java 11 и 12, Tomcat 10 и 8.5, ошибка везде одинаковая.
Можно конечно объявлять по старинке, но я за время работы над предыдущим проектом уже привык к var, удобненько. Да и в принципе хотелось бы разобраться, почему в спринговом проекте все работало, а в EE - нет?
Антон Воскобоев, код чего? Объявления переменной? Ну ок. Вот это не работает, падает на любой строчке с var:
@WebServlet("/test")
public class TestServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) {
var headerNames = request.getHeaderNames();
var hello = "Hello world!";
var i = 0;
}
}
Хотя вот это работает:
@WebServlet("/test")
public class TestServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) {
Enumeration<String> headerNames = request.getHeaderNames();
String hello = "Hello world!";
int i = 0;
}
}