package org.etk.reflect.api; import java.util.List; /** * ParameterizedType represents a parameterized type such as Collection<String> * <p> * A parameterized type is created the first time it is needed by a reflective * method, as specified in this package. When a parameterized type p is created, * the generic type declaration that p instantiates is resolved, and all type * arguments of p are created recursively. See TypeVariable for details on the * creation process for type variables. Repeated creation of a parameterized * type has no effect. Instances of classes that implement this interface must * implement an equals() method that equates any two instances that share the * same generic type declaration and have equal type parameters. * * @author thanh_vucong */ public interface ParameterizedTypeInfo extends TypeInfo { TypeInfo getRawType(); /** * Returns a List of Type objects representing the actual type arguments to * this type. Note that in some cases, the returned array be empty. This can * occur if this type represents a non-parameterized type nested within a * parameterized type. * * @return */ List<TypeInfo> getTypeArguments(); /** * Returns a Type object representing the type that this type is a member of. * For example, if this type is O<T>.I<S>, return a representation of O<T>. If * this type is a top-level type, null is returned. * * @return */ TypeInfo getOwnerType(); }