Returns a public field for a given property - Java Reflection

Java examples for Reflection:Field

Description

Returns a public field for a given property

Demo Code

/*//from ww  w .  jav a 2  s .com
 * 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>
 */
//package com.java2s;

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 Tutorials