Java Reflection Field Set setField(final Object parent, final String name, final Object obj)

Here you can find the source of setField(final Object parent, final String name, final Object obj)

Description

set Field

License

Apache License

Declaration

public static void setField(final Object parent, final String name, final Object obj) 

Method Source Code

//package com.java2s;
/**//from w  w w  .jav a 2 s  .  co m
 * Copyright 2015 DuraSpace, Inc.
 *
 * 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;

public class Main {
    public static void setField(final Object parent, final String name, final Object obj) {
        /* check the parent class too if the field could not be found */
        try {
            final Field f = findField(parent.getClass(), name);
            f.setAccessible(true);
            f.set(parent, obj);
        } catch (final Exception e) {
            e.printStackTrace();
        }
    }

    private static Field findField(final Class<?> clazz, final String name) throws NoSuchFieldException {
        for (final Field f : clazz.getDeclaredFields()) {
            if (f.getName().equals(name)) {
                return f;
            }
        }
        if (clazz.getSuperclass() == null) {
            throw new NoSuchFieldException("Field " + name + " could not be found");
        }
        return findField(clazz.getSuperclass(), name);
    }
}

Related

  1. setField(final Object obj, final String fieldName, final int value)
  2. setField(final Object obj, final String fieldName, final Object value)
  3. setField(final Object obj, final String name, final Object value)
  4. setField(final Object obj, final String variableName, final Object variableValue)
  5. setField(final Object object, final String name, final Object value)
  6. setField(java.lang.Object toObj, String tcFieldName, java.lang.Object toNewValue)
  7. setField(Object instance, String fieldName, Object value)
  8. setField(Object instance, String name, Object obj)
  9. setField(Object instance, String sField, Object value)