javax.ws.rs.core

## Class GenericType<T>

- java.lang.Object
- - javax.ws.rs.core.GenericType<T>

- Type Parameters:
    `T` - the generic type parameter.

      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

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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 © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.