제가 작업하고있는 코드 조각에 제네릭을 추가하는 데 문제가 있습니다. 검색 한 적이 없으며 지금까지 본 예제 중 아무 것도 검색하지 못했습니다. 그렇게하려고하면 도움을 청할거야.자바 메서드에서 제네릭을 사용하는 방법
현재 나는 그들의 ID의 인구가 UserDTO
개체의 목록을 처리하고 편안한 웹 서비스에서 각 User
의 전체 세부 사항을 얻을이 코드가있다 :
//userIds and userDetails declared previously
for (UserDTO user : userIds) {
UserDTO populatedUser = webResource.path(REST_USER_PATH).path(user.getId().
toString()).type(MediaType.APPLICATION_XML).get(ClientResponse.class).
getEntity(UserDTO.class);
userDetails.add(populatedUser);
}
이제이 될 것입니다 현재 착수하고있는 작업을위한 패턴으로, ID가 채워진 DTO
개체 목록을 웹 서비스 호출을 통해 완전히 채워진 DTO
개체 목록으로 변환 할 수 있어야합니다. 내가하고 싶은 것은 이것을 가능하게하는 일반적인 방법을 만드는 것입니다.
내가 확장을 위해이 작업을 수행 할 필요가 모든 다른 DTO
객체는 그래서 불행하게도이 컴파일되지 않습니다, 다음과 함께했다 BaseDTO
우리 만 잘하면 내가 달성하기 위해 노력하고있어 표시됩니다 :
public <T extends BaseDTO> getListOfPopulatedDTOs(
List <T extends BaseDTO> unpopulatedDTOs, String restPath) {
List<BaseDTO> populatedDTOs = new ArrayList<BaseDTO>();
for (BaseDTO unpopulatedDTO : unpopulatedDTOs) {
BaseDTO populatedDTO = webResource.path(restPath).path(
unpopulatedDTO.getId().toString()).type(MediaType.APPLICATION_XML).
get(ClientResponse.class).getEntity(T.class);
populatedDTOs.add(populatedDTO);
}
return populatedDTOs;
}
도움이나 조언을 보내 주시면 감사하겠습니다. 미리 감사드립니다.
당신이 컴파일 오류를 공유 할 수 (목록이 null 또는 0 크기 확인) 할 수 있습니까? – mikemil
내가 궁금한 점은 - 일반적인 질문이 필요한 경우 - 어떻게 메소드에 하드 코딩 된 'ClientResponse.class'를 제거 할 수 있었습니까? 어떤 유형의 clazz 나 좀 더 일반적인 것이 필요하지 않습니까? 아니면 ClientResponse가 응답 데이터의 '기본'클래스입니까? – mikemil