如何修复java中的数组列表强制转换

h9a6wy2h  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(258)

当我运行以下程序时,它会抛出一个错误:
类java.util.linkedhashmap不能强制转换为类com.synesisit.biwta.base.payload.vesselinfo
GetVesselInfoByOwnerId返回列表

public List<VesselTaxStatusResponse> findPendingTaxByVesselOwnerId(String vesselOwnerNID) {

        List<VesselTaxStatusResponse> vesselTaxStatusResponseList = new ArrayList<>();

        List<VesselInfo> vesselInfoList = getVesselInfoByOwnerNid(vesselOwnerNID);

        System.out.println(vesselInfoList);

        if (vesselInfoList != null) {
            for (VesselInfo v : vesselInfoList) {
                Long vesselId = v.getVesselId();
                VesselTaxStatusResponse vesselTaxStatusResponse = findTaxStatusByVesselId(vesselId);
                vesselTaxStatusResponseList.add(vesselTaxStatusResponse);
            }
        }
        return vesselTaxStatusResponseList;

    }

public List<VesselInfo> getVesselInfoByOwnerNid(String nid) {

    UsernamePasswordAuthenticationToken authentication = (UsernamePasswordAuthenticationToken) SecurityContextHolder
            .getContext().getAuthentication();
    String jwt = jwtTokenProvider.generateToken(authentication);
    String client_url = AppConstants.GET_VESSEL_BY_OWNER_NID + nid;
    HttpHeaders headers = new HttpHeaders();
    headers.set("Authorization", "Bearer " + jwt);
    HttpEntity<String> jwtEntity = new HttpEntity<String>(headers);
    ResponseEntity<?> result = restTemplate.exchange(client_url, HttpMethod.GET, jwtEntity, ApiResponse.class);

    if (!ObjectUtils.isEmpty(result.getBody())) {
        ApiResponse apiResponse = (ApiResponse) result.getBody();
        List<VesselInfo> responseData = (List<VesselInfo>) apiResponse.getData();
        return responseData;
    }
    return null;
}
nzk0hqpo

nzk0hqpo1#

GetVesselInfoByOwnerId是否返回hashmap?
因此,如果您的问题是如何将hashmap转换为pojo,那么一个好方法是使用jackson:final objectmapper mapper=new objectmapper();//jackson的objectmapper final vesselinfo vesselinfo=mapper.convertvalue(map,vesselinfo.class);

相关问题