小编Ale*_*ade的帖子

使用 Java 8 和 Java 11 时如何修复“类 java.util.LinkedHashMap 无法转换为类”的问题

我正在使用使用 Java 11 构建的微服务,该服务具有在 Java 8 中构建的依赖项。依赖项中有 rest-clients,并且有一种方法可以执行此操作:

    public <T> ResponseEntity<my.company.Wrapper<T>> getForList(String url, HttpHeaders headers) {
        try {
            return template.exchange(url, GET, new HttpEntity<>(headers), new ParameterizedTypeReference<Wrapper<T>>() { });
        } catch (RestClientException restEx) {
            logger.error("RestClientException!, restEx: {}", restEx);
            throw restEx;
        }
    }
Run Code Online (Sandbox Code Playgroud)

休息调用刚刚成功, response -> <200,Wrapper [ elements = [{id=dbfc2557-1738-45e4-8ecd-235d35158957, .....

然后,在微服务(使用 Java 11)中,当它使用 java Stream 时有一点:

        var found = enttsResponse.stream()
                .map(MyCompanyResponse::getId)
                .collect( toList() );
Run Code Online (Sandbox Code Playgroud)

异常消息是:

java.lang.ClassCastException: class java.util.LinkedHashMap cannot be cast to class com.mycompany.commons.v2.entitlement.MyCompanyResponse (java.util.LinkedHashMap is in module java.base of loader …
Run Code Online (Sandbox Code Playgroud)

java classcastexception java-8 java-11

11
推荐指数
1
解决办法
2万
查看次数

标签 统计

classcastexception ×1

java ×1

java-11 ×1

java-8 ×1