2011-03-23 8 views
1

안녕 얘들 아. Glassfish 3.1에서 실행되는 REST에서 일부 서비스를 개발했습니다.Restful Service에서 List of Objects를 되 찾는 데 문제가 있음

Java SE 응용 프로그램이 있으며 클라이언트 API로 Jersey를 사용하고 있습니다.

public <T> T findAll_JSON(Class<T> responseType) throws UniformInterfaceException { 
    WebResource resource = webResource; 
    return resource.accept(MediaType.APPLICATION_JSON).get(responseType); 
} 

이것은 Netbeans에서 생성 한 클라이언트 코드입니다.

내 주요 문제는 응답 유형 여기

로 개체의 목록을 통과하면 클라이언트 코드입니다.

응답이 PkgLine 목록이어야하므로 분명히 작동하지 않습니다. 어떻게 제네릭으로 전달합니까? 내 서비스는 PkgLine 목록을 반환하도록 설정됩니다. 감사.

답변

1

문제는 "삭제"입니다. 프로그램에서 List<PkgLine>을 선언 할 수 있지만 런타임에 목록의 개체가 PkgLines이라는 정보가 지워집니다. List<String>, List<PkgLine>List<Object>은 모두 런타임시 동일한 유형입니다. (이유가 있기 때문에 여기서는 설명하지 않겠지 만 관심이 있다면 "지우기"를 찾아 볼 수 있습니다.)

목록에있는 개체는 물론 PkgLines이지만 물론 목록에 있습니다. 객체 일 뿐이므로 각 객체를 PkgLine으로 캐스팅해야합니다. 꽤 아니야.

List<?> pkgLine = service.findAll_JSON(List.class); 
System.out.println(((PkgLine)(pkgLine.get(5))).getLineStatus()); 
service.close(); 
1

배열 구문 분석은 어떻게됩니까? 그것은 같은 json represantation 있습니다. 다음과 같이 작성할 수 있습니다.

resource.accept(MediaType.APPLICATION_JSON).get(PkgLine[].class); 
관련 문제