public class Reflectutil {
Case insensitive
public static object Setfieldvaluedefault (object target, String fname,
Class ftype, Object fvalue) {
If target = null
|| FName = null
|| "". Equals (fname)
|| (Fvalue!= null &&!ftype
. IsAssignableFrom (Fvalue.getclass ())) {
return target;
}
Class clazz = Target.getclass ();
field[] fs = Clazz.getdeclaredfields ();
try {
for (int i = 0; i < fs.length; i++) {
if (Fname.tolowercase (). Equals (Fs[i].getname (). toLowerCase ())) {
Method method = Clazz.getdeclaredmethod ("Set"
+ Character.touppercase (Fs[i].getname (). CharAt (0))
+ fs[i].getname (). substring (1), string.class);
if (! Modifier.ispublic (Method.getmodifiers ()) {
Method.setaccessible (TRUE);
}
Method.invoke (target, 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.getstacktrace ();
}
}
return target;
}
Case sensitive
public static object SetFieldValue (object target, String fname, Class ftype,
Object fvalue) {
If target = null
|| FName = null
|| "". Equals (fname)
|| (Fvalue!= null &&!ftype
. IsAssignableFrom (Fvalue.getclass ())) {
return target;
}
Class clazz = Target.getclass ();
field[] fs = Clazz.getdeclaredfields ();
try {
Method method = Clazz.getdeclaredmethod ("Set"
+ character.touppercase (Fname.charat (0))
+ fname.substring (1), string.class);
if (! Modifier.ispublic (Method.getmodifiers ()) {
Method.setaccessible (TRUE);
}
Method.invoke (target, 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.getstacktrace ();
}
}
return target;
}
public static object GetFieldValue (object target, String fname, Class ftype) {
If target = null | | fname = NULL | | "". Equals (fname)) {
return null;
}
Class clazz = Target.getclass ();
try {
Method method = Clazz.getdeclaredmethod (' Get '
+ character.touppercase (Fname.charat (0))
+ fname.substring (1), ftype);
if (! Modifier.ispublic (Method.getmodifiers ()) {
Method.setaccessible (TRUE);
}
return Method.invoke (target);
catch (Exception me) {
try {
Field field = Clazz.getdeclaredfield (fname);
if (! Modifier.ispublic (Field.getmodifiers ()) {
Field.setaccessible (TRUE);
}
return Field.get (target);
catch (Exception Fe) {
Fe.getstacktrace ();
}
}
return null;
}
}