48.4. 일반 유형 정보를 사용하여 엔터티 반환


48.4.1. 개요

애플리케이션에 반환된 개체의 MIME 유형 또는 응답을 직렬화하는 데 사용되는 엔터티 공급자를 더 많이 제어해야 하는 경우가 있습니다. Cryostat-RS javax.ws.core.GenericEntity<T > 클래스는 엔터티를 나타내는 개체의 일반 유형을 지정하는 메커니즘을 제공하여 엔터티 직렬화에 대한 세분화된 제어를 제공합니다.

48.4.2. GenericEntity<T> 오브젝트 사용

응답을 직렬화하는 엔터티 공급자를 선택하는 데 사용되는 기준 중 하나는 오브젝트의 일반 유형입니다. 오브젝트의 일반 유형은 오브젝트의 Java 유형을 나타냅니다. 공통 Java 유형 또는 CryostatB 개체가 반환되면 런타임에서 Java 리플렉션을 사용하여 일반 유형을 결정할 수 있습니다. 그러나 Cryostat-RS Response 개체가 반환되면 런타임에서 래핑된 엔터티의 일반 유형을 확인할 수 없으며 개체의 실제 Java 클래스가 Java 유형으로 사용됩니다.

엔터티 공급자가 올바른 일반 유형 정보를 제공하도록 엔터티를 GenericEntity<T > 개체로 래핑하여 반환된 Response 개체에 추가할 수 있습니다.

리소스 메서드는 GenericEntity<T > 오브젝트를 직접 반환할 수도 있습니다. 실제로 이 방법은 거의 사용되지 않습니다. GenericEntity<T > 개체에 래핑된 엔터티에 대해 저장된 일반 유형 정보와 래핑되지 않은 엔티티의 반영에 의해 결정된 일반 유형 정보는 일반적으로 동일합니다.

48.4.3. GenericEntity<T> 오브젝트 생성

GenericEntity<T > 개체를 만드는 방법은 다음 두 가지가 있습니다.

  1. 래핑되는 엔터티를 사용하여 GenericEntity<T& gt; 클래스의 하위 클래스를 만듭니다. 하위 클래스를 사용하여 GenericEntity<T> 오브젝트 생성 런타임 시 일반 유형을 사용할 수 있는 List<String > 유형의 엔터티가 포함된 GenericEntity<T > 개체를 만드는 방법을 보여줍니다.

    하위 클래스를 사용하여 GenericEntity<T> 오브젝트 생성

    import javax.ws.rs.core.GenericEntity;
    
    List<String> list = new ArrayList<String>();
    ...
    GenericEntity<List<String>> entity =
      new GenericEntity<List<String>>(list) {};
    Response response = Response.ok(entity).build();

    GenericEntity<T > 개체를 만드는 데 사용되는 하위 클래스는 일반적으로 익명입니다.

  2. 엔터티에 일반 유형 정보를 제공하여 인스턴스를 직접 생성합니다. 예 48.2. “GenericEntity<T> 오브젝트 직접 인스턴스화” AtomicInteger 유형의 엔티티가 포함된 응답을 만드는 방법을 보여줍니다.

    예 48.2. GenericEntity<T> 오브젝트 직접 인스턴스화

    import javax.ws.rs.core.GenericEntity;
    
    AtomicInteger result = new AtomicInteger(12);
    GenericEntity<AtomicInteger> entity =
      new GenericEntity<AtomicInteger>(result,
                                          result.getClass().getGenericSuperclass());
    Response response = Response.ok(entity).build();
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.