Java examples for Reflection:Field Set
set Field
/**/*w w w .j a v a2s. c om*/ * Copyright 2008-2009 the original author or authors. * * 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. */ //package com.java2s; import java.beans.IntrospectionException; import java.beans.PropertyDescriptor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; public class Main { public static void setField(Object parent, String fieldName, Object value) { try { Method method = findSetter(parent, fieldName); if (method != null) { method.setAccessible(true); method.invoke(parent, new Object[] { value }); } else { Field field = parent.getClass().getDeclaredField(fieldName); field.setAccessible(true); field.set(parent, value); } } catch (IllegalAccessException e) { throw new RuntimeException(e); } catch (InvocationTargetException e) { throw new RuntimeException(e); } catch (NoSuchFieldException e) { throw new IllegalArgumentException("Field '" + fieldName + "' was not found on " + parent.getClass().getName()); } } private static Method findSetter(Object parent, String fieldName) { try { PropertyDescriptor descriptor = new PropertyDescriptor( fieldName, parent.getClass()); return descriptor.getWriteMethod(); } catch (IntrospectionException e) { return null; } } }