Here you can find the source of setFieldValue(Object target, String fname, Class ftype, Object fvalue)
public static void setFieldValue(Object target, String fname, Class ftype, Object fvalue)
//package com.java2s; //License from project: Open Source License import java.lang.reflect.Field; import java.lang.reflect.Method; import java.lang.reflect.Modifier; public class Main { public static void setFieldValue(Object target, String fname, Class ftype, Object fvalue) { if ((target == null) || (fname == null) || ("".equals(fname)) || ((fvalue != null) && (!ftype.isAssignableFrom(fvalue.getClass())))) { return; }//w w w .j a v a 2s .c o m Class clazz = target.getClass(); try { Method method = clazz.getDeclaredMethod( "set" + Character.toUpperCase(fname.charAt(0)) + fname.substring(1), new Class[] { ftype }); if (!Modifier.isPublic(method.getModifiers())) { method.setAccessible(true); } method.invoke(target, new Object[] { fvalue }); } catch (Exception me) { try { Field field = clazz.getDeclaredField(fname); if (!Modifier.isPublic(field.getModifiers())) { field.setAccessible(true); } field.set(target, fvalue); } catch (Exception fe) { fe.printStackTrace(); } } } }