我正在使用使用 Java 11 构建的微服务,该服务具有在 Java 8 中构建的依赖项。依赖项中有休息客户端,并且有一个方法可以执行此操作:
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;
}
}
休息通话刚刚成功, response -> <200,Wrapper [ elements = [{id=dbfc2557-1738-45e4-8ecd-235d35158957, .....
然后,在微服务(使用 Java 11)中,有一个点需要使用 java Stream:
var found = enttsResponse.stream()
.map(MyCompanyResponse::getId)
.collect( toList() );
异常消息是:
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 'bootstrap'; com.mycompany.commons.v2.entitlement.MyCompanyResponse is in unnamed module of loader 'app')
我熟悉Java8,但不熟悉Java 11,我认为与类加载器有关(来自Java 9)
解决方法已接受,提前致谢!
沧海一幻觉
相关分类