Java Reflection Generic Type getGenericArguments(Type type)

Here you can find the source of getGenericArguments(Type type)

Description

Returns the generic type argument.

License

Apache License

Parameter

Parameter Description
type a parameter

Declaration

public static Type[] getGenericArguments(Type type) 

Method Source Code


//package com.java2s;
/*//from  w w  w .  ja va  2s .  com
 * Copyright 2013 StuxCrystal
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed
 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations under the License.
 */

import java.lang.reflect.*;

public class Main {
    /**
     * Returns the generic type argument.
     *
     * @param type
     * @return
     */
    public static Type[] getGenericArguments(Type type) {
        if (type instanceof GenericArrayType) {
            return getGenericArguments(((GenericArrayType) type).getGenericComponentType());
        } else if (type instanceof ParameterizedType) {
            ParameterizedType parameters = (ParameterizedType) type;
            return parameters.getActualTypeArguments();
        } else {
            return new Class<?>[0];
        }
    }
}

Related

  1. getGenericElementType(Type type)
  2. getGenericFirst(Object obj)
  3. getGenerics(Type genericType)
  4. getGenerics(Type t)