JAVA反射技术应用-ReflectUtil
2013-03-26 00:00
453 查看
public class ReflectUtil {
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;
}
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;
}
}
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;
}
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;
}
}
相关文章推荐
- JAVA反射技术应用-ReflectUtil
- .net反射技术的应用—如何调用Java的COM接口
- java反射技术的应用(一)
- java反射技术的应用(二)
- 黑马程序员-----java基础二十一(java之反射技术应用(代理))
- Java 反射与代理技术及应用解读
- 黑马程序员_Java高薪技术之构造方法的反射应用
- .Net反射技术应用—与Java互操作
- java之反射技术及其应用
- java之反射技术应用(二)
- java反射技术应用--灵活导出excel
- .net反射技术的应用—如何调用Java的COM接口[转]
- Java 反射技术及其应用
- Java反射技术及其应用
- Java分布式应用技术架构介绍
- 黑马程序员-java反射技术
- java_反射_j技术总结
- Java高新技术第二篇:反射技术
- Java高新技术第二篇:反射技术
- Java反射各种应用