Java Reflection Generic Type from Field getGenericMultivalueType(final Field p)

Here you can find the source of getGenericMultivalueType(final Field p)

Description

Returns the generic class of multi-value objects.

License

Apache License

Parameter

Parameter Description
p Field to examine

Return

The Class of generic type if any, otherwise null

Declaration

public static Class<?> getGenericMultivalueType(final Field p) 

Method Source Code

//package com.java2s;
/*//from   w w w  .java 2 s  .co  m
 * Copyright 1999-2010 Luca Garulli (l.garulli--at--orientechnologies.com)
 *
 * 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.Field;

import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;

public class Main {
    /**
     * Returns the generic class of multi-value objects.
     * 
     * @param p
     *          Field to examine
     * @return The Class<?> of generic type if any, otherwise null
     */
    public static Class<?> getGenericMultivalueType(final Field p) {
        final Type genericType = p.getGenericType();
        if (genericType != null && genericType instanceof ParameterizedType) {
            final ParameterizedType pt = (ParameterizedType) genericType;
            if (pt.getActualTypeArguments() != null
                    && pt.getActualTypeArguments().length > 0) {
                if (pt.getActualTypeArguments()[0] instanceof Class<?>) {
                    return (Class<?>) pt.getActualTypeArguments()[0];
                }
            }
        }
        return null;
    }
}

Related

  1. getGenericFieldType(Field field, boolean isAllowNull)
  2. getGenericFieldType(Object target, String fieldName)
  3. getGenericFieldTypeFromPosition(Field field, int position)
  4. getGenericlyTypeCount(Field field)
  5. getGenericMultivalueType(final Field p)
  6. getGenericParameterClass(Field field)
  7. getGenericParameterClass(Field field)
  8. getGenericParameters(Field f)
  9. getGenericParametersInternal(Type genericFieldType)