Компиляция JDK 11.0.2 завершается с ошибкой с помощью javac NPE при выводе типа анонимного параметризованного класса ⇐ JAVA
Компиляция JDK 11.0.2 завершается с ошибкой с помощью javac NPE при выводе типа анонимного параметризованного класса
Код (spring-web 5.1.2)
public static void main(String[] args) { RestTemplate restTemplate = новый RestTemplate(); Заголовки HttpHeaders = новые HttpHeaders(); headers.set(HttpHeaders.AUTHORIZATION, "токен"); HttpEntity requestEntity = новый HttpEntity(заголовки); ResponseEntity test = restTemplate.exchange( "https://example.com", HttpMethod.GET, новый HttpEntity(заголовки), new ParameterizedTypeReference() { // здесь происходит сбой }); } OracleJDK 1.8 (ожидаемый результат)
невозможно вывести аргументы типа для org.springframework.core.ParameterizedTypeReference
причина: невозможно использовать '' с анонимными внутренними классами
OracleJDK 11.0.2 (результат не ожидается)
Файл сообщений компилятора поврежден: key=compiler.misc.msg.bug аргументы=11.0.2, {1}, {2}, {3}, {4}, {5}, {6}, {7} java.lang.NullPointerException в jdk.compiler/com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitApply(Flow.java:1235) в jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvoction.accept(JCTree.java:1634) в jdk.compiler/com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) в jdk.compiler/com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:398) в jdk.compiler/com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitVarDef(Flow.java:989)
...
Если я изменю оператор ромба на явный тип
От
новой ссылки на параметризованный тип(){ до новой ссылки на параметризованный тип(){
затем код успешно компилируется в обоих JDK.
Это известная ошибка компилятора?
Код (spring-web 5.1.2)
public static void main(String[] args) { RestTemplate restTemplate = новый RestTemplate(); Заголовки HttpHeaders = новые HttpHeaders(); headers.set(HttpHeaders.AUTHORIZATION, "токен"); HttpEntity requestEntity = новый HttpEntity(заголовки); ResponseEntity test = restTemplate.exchange( "https://example.com", HttpMethod.GET, новый HttpEntity(заголовки), new ParameterizedTypeReference() { // здесь происходит сбой }); } OracleJDK 1.8 (ожидаемый результат)
невозможно вывести аргументы типа для org.springframework.core.ParameterizedTypeReference
причина: невозможно использовать '' с анонимными внутренними классами
OracleJDK 11.0.2 (результат не ожидается)
Файл сообщений компилятора поврежден: key=compiler.misc.msg.bug аргументы=11.0.2, {1}, {2}, {3}, {4}, {5}, {6}, {7} java.lang.NullPointerException в jdk.compiler/com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitApply(Flow.java:1235) в jdk.compiler/com.sun.tools.javac.tree.JCTree$JCMethodInvoction.accept(JCTree.java:1634) в jdk.compiler/com.sun.tools.javac.tree.TreeScanner.scan(TreeScanner.java:49) в jdk.compiler/com.sun.tools.javac.comp.Flow$BaseAnalyzer.scan(Flow.java:398) в jdk.compiler/com.sun.tools.javac.comp.Flow$FlowAnalyzer.visitVarDef(Flow.java:989)
...
Если я изменю оператор ромба на явный тип
От
новой ссылки на параметризованный тип(){ до новой ссылки на параметризованный тип(){
затем код успешно компилируется в обоих JDK.
Это известная ошибка компилятора?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Запретить Byte Buddy повторять аргументы типа при реализации параметризованного типа
Anonymous » » в форуме JAVA - 0 Ответы
- 21 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Javac: файл не найден: first.java Использование: javac <опции> <исходные файлы>
Anonymous » » в форуме JAVA - 0 Ответы
- 48 Просмотры
-
Последнее сообщение Anonymous
-