- java.lang.Object
-
- javax.ws.rs.core.GenericEntity<T>
-
- Type Parameters:
T
- response entity instance type
public class GenericEntity<T> extends Object
Represents a message entity of a generic typeT
.Normally type erasure removes generic type information such that a
Response
instance that contains, e.g., an entity of typeList<String>
appears to contain a rawList<?>
at runtime. When the generic type is required to select a suitableMessageBodyWriter
, this class may be used to wrap the entity and capture its generic type.There are two ways to create an instance:
- Create a (typically anonymous) subclass of this
class which enables retrieval of the type information at runtime despite
type erasure. For example, the following code shows how to create a
Response
containing an entity of typeList<String>
whose generic type will be available at runtime for selection of a suitableMessageBodyWriter
:List<String> list = new ArrayList<String>(); GenericEntity<List<String>> entity = new GenericEntity<List<String>>(list) {}; Response response = Response.ok(entity).build();
where
list
is the instance ofList<String>
that will form the response body and entity is an instance of an anonymous subclass ofGenericEntity
. - Create an instance directly by supplying the generic type information
with the entity. For example the following code shows how to create
a response containing the result of a method invoked via reflection:
Method method = ...; GenericEntity<Object> entity = new GenericEntity<Object>( method.invoke(...), method.getGenericReturnType()); Response response = Response.ok(entity).build();
The above obtains the generic type from the return type of the method, the raw type is the class of entity.
- Since:
- 1.0
- Author:
- Paul Sandoz, Marc Hadley
- See Also:
GenericType
-
-
Constructor Summary
Constructors Modifier Constructor and Description protected
GenericEntity(T entity)
Constructs a new generic entity.GenericEntity(T entity, Type genericType)
Create a new instance of GenericEntity, supplying the generic type information.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method and Description boolean
equals(Object obj)
T
getEntity()
Get the enclosed entity.Class<?>
getRawType()
Gets the raw type of the enclosed entity.Type
getType()
Gets underlyingType
instance.int
hashCode()
String
toString()
-
-
-
Constructor Detail
-
GenericEntity
protected GenericEntity(T entity)
Constructs a new generic entity. Derives represented class from type parameter. Note that this constructor is protected, users should create a (usually anonymous) subclass as shown above.- Parameters:
entity
- the entity instance, must not benull
.- Throws:
IllegalArgumentException
- if entity isnull
.
-
GenericEntity
public GenericEntity(T entity, Type genericType)
Create a new instance of GenericEntity, supplying the generic type information. The entity must be assignable to a variable of the supplied generic type, e.g. ifentity
is an instance ofArrayList<String>
thengenericType
could be the same or a superclass ofArrayList
with the same generic type likeList<String>
.- Parameters:
entity
- the entity instance, must not benull
.genericType
- the generic type, must not benull
.- Throws:
IllegalArgumentException
- if the entity is not assignable to a variable of the supplied generic type or if entity or genericType is null.
-
-
Method Detail
-
getRawType
public final Class<?> getRawType()
Gets the raw type of the enclosed entity. Note that this is the raw type of the instance, not the raw type of the type parameter. I.e. in the example in the introduction, the raw type isArrayList
notList
.- Returns:
- the raw type.
-
getType
public final Type getType()
Gets underlyingType
instance. Note that this is derived from the type parameter, not the enclosed instance. I.e. in the example in the introduction, the type isList<String>
notArrayList<String>
.- Returns:
- the type
-
getEntity
public final T getEntity()
Get the enclosed entity.- Returns:
- the enclosed entity.
-
-
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 11/06/2005, zuletzt geändert 18/08/2025
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/java-api-javaee-rf-javax/ws/rs/core/GenericEntity.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.
Referenzen
Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor dieser Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.