The number of type arguments must either equal the * number of the declaration's formal type parameters, or must be * zero. If zero, and if the declaration is generic, * then the declaration's raw type is returned. * *
If a parameterized type is being returned, its declaration
* must not be contained within a generic outer class.
* The parameterized type {@code Outer If the containing type is a parameterized type,
* the number of type arguments must equal the
* number of the declaration's formal type parameters.
* If it is not parameterized or if it is null, this method is
* equivalent to getDeclaredType(decl, typeArgs).
*
* @param containing the containing type, or null if none
* @param decl the type declaration
* @param typeArgs the actual type arguments
* @return the type corresponding to the type declaration and
* actual type arguments,
* contained within the given type
* @throws IllegalArgumentException if too many or too few
* type arguments are given, or if an inappropriate type
* argument, declaration, or containing type is provided
*/
DeclaredType getDeclaredType(DeclaredType containing,
TypeDeclaration decl,
TypeMirror... typeArgs);
}