Java Reflection Field Find findField(@Nonnull Class clazz, @Nonnull String name, Class type)

Here you can find the source of findField(@Nonnull Class clazz, @Nonnull String name, Class type)

Description

find Field

License

Apache License

Parameter

Parameter Description
clazz a parameter
name a parameter
type a parameter

Declaration

public static Field findField(@Nonnull Class<?> clazz, @Nonnull String name, Class<?> type) 

Method Source Code

//package com.java2s;
/*/*w  ww.j a  va2s. co m*/
 * Copyright 2016-2017 Daniel Siviter
 *
 * 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 javax.annotation.Nonnull;

public class Main {
    /**
     * 
     * @param clazz
     * @param name
     * @param type
     * @return
     */
    public static Field findField(@Nonnull Class<?> clazz, @Nonnull String name, Class<?> type) {
        Class<?> searchType = clazz;
        while (!Object.class.equals(searchType) && searchType != null) {
            for (Field field : searchType.getDeclaredFields()) {
                if (name.equals(field.getName()) && (type == null || type.equals(field.getType()))) {
                    return field;
                }
            }
            searchType = searchType.getSuperclass();
        }
        return null;
    }
}

Related

  1. findField(Class aClass, String aFieldName)
  2. findField(Class c, Class fieldtype)
  3. findField(Class c, String fieldName)
  4. findField(Class classBeFind, String name)