Java Reflection Field Find findField(Class c, String property, Class propertyType)

Here you can find the source of findField(Class c, String property, Class propertyType)

Description

Returns a public field for a given property

License

Open Source License

Parameter

Parameter Description
c the class which would contain the field
property the property
propertyType the property's type

Return

the field or null if there is no field for this property

Declaration

public static Field findField(Class<?> c, String property, Class<?> propertyType) 

Method Source Code

//package com.java2s;
/*/*from   w  ww  . j  av  a2  s.  co m*/
 * Copyright (c) 2012 Data Harmonisation Panel
 * 
 * All rights reserved. This program and the accompanying materials are made
 * available under the terms of the GNU Lesser General Public License as
 * published by the Free Software Foundation, either version 3 of the License,
 * or (at your option) any later version.
 * 
 * You should have received a copy of the GNU Lesser General Public License
 * along with this distribution. If not, see <http://www.gnu.org/licenses/>.
 * 
 * Contributors:
 *     HUMBOLDT EU Integrated Project #030962
 *     Data Harmonisation Panel <http://www.dhpanel.eu>
 */

import java.lang.reflect.Field;

public class Main {
    /**
     * Returns a public field for a given property
     * 
     * @param c the class which would contain the field
     * @param property the property
     * @param propertyType the property's type
     * @return the field or null if there is no field for this property
     */
    public static Field findField(Class<?> c, String property, Class<?> propertyType) {
        Field result = null;
        Field[] fields = c.getFields();
        for (Field f : fields) {
            String fn = f.getName();
            if (fn.charAt(0) == '_') {
                // handle code style
                fn = fn.substring(1);
            }
            if (fn.equals(property) && (propertyType == null || f.getType().isAssignableFrom(propertyType))) {
                result = f;
                break;
            }
        }

        return result;
    }
}

Related

  1. findField(Class clazz, String name)
  2. findField(Class cls, String name)
  3. findField(Class objectClass, String fieldName)
  4. findField(Class type, String fieldName)
  5. findField(Class c, String name)
  6. findField(Class cl, String fieldName)
  7. findField(Class classToCheck, String propertyName)
  8. findField(Class claz, String... names)
  9. findField(Class clazz, final String field)