javax.ws.rs.core
Class GenericType<T>

java.lang.Object
  extended by javax.ws.rs.core.GenericType<T>
Type Parameters:
T - the generic type parameter.
Direct Known Subclasses:
ChunkedInput, ChunkedOutput

public class GenericType<T>
extends Object

Represents a generic message entity type T. Supports in-line instantiation of objects that represent generic types with actual type parameters. An object that represents any parameterized type may be obtained by sub-classing GenericType. Alternatively, an object representing a concrete parameterized type can be created using a GenericType(java.lang.reflect.Type) and manually specifying the actual (parameterized) type.

For example:

  GenericType<List<String>> stringListType = new GenericType<List<String>>() {};
 

Or:

  public class MyGenericType extends GenericType<List<String>> { ... }

  ...

  MyGenericType stringListType = new MyGenericType();
 

Note that due to the Java type erasure limitations the parameterized type information must be specified on a subclass, not just during the instance creation. For example, the following case would throw an IllegalArgumentException:

  public class MyGenericType<T> extends GenericType<T> { ... }

  ...

  // The type is only specified on instance, not in a sub-class
  MyGenericType<List<String>> stringListType =
          new MyGenericType<List<String>>();
 

Since:
2.0
Author:
Marek Potociar, Paul Sandoz, Martin Matula

Constructor Summary
protected GenericType()
          Constructs a new generic type, deriving the generic type and class from type parameter.
  GenericType(Type genericType)
          Constructs a new generic type, supplying the generic type information and deriving the class.
 
Method Summary
 boolean equals(Object obj)
           
 Class<?> getRawType()
          Returns the object representing the class or interface that declared the type represented by this generic type instance.
 Type getType()
          Retrieve the type represented by the generic type instance.
 int hashCode()
           
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

GenericType

protected GenericType()
Constructs a new generic type, deriving the generic type and class from type parameter. Note that this constructor is protected, users should create a (usually anonymous) subclass as shown above.

Throws:
IllegalArgumentException - in case the generic type parameter value is not provided by any of the subclasses.

GenericType

public GenericType(Type genericType)
Constructs a new generic type, supplying the generic type information and deriving the class.

Parameters:
genericType - the generic type.
Throws:
IllegalArgumentException - if genericType is null or not an instance of Class or ParameterizedType whose raw type is an instance of Class.
Method Detail

getType

public final Type getType()
Retrieve the type represented by the generic type instance.

Returns:
the actual type represented by this generic type instance.

getRawType

public final Class<?> getRawType()
Returns the object representing the class or interface that declared the type represented by this generic type instance.

Returns:
the class or interface that declared the type represented by this generic type instance.

equals

public boolean equals(Object obj)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object

toString

public String toString()
Overrides:
toString in class Object


Copyright © 2007-2014, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.