null
- *
+ *
* @param beanClass 被查找字段的类,不能为null
- * @param name 字段名
+ * @param name 字段名
* @return 字段
* @throws SecurityException 安全异常
*/
@@ -126,7 +135,7 @@ public class ReflectUtil {
/**
* 获得一个类中所有字段列表,包括其父类中的字段
- *
+ *
* @param beanClass 类
* @return 字段列表
* @throws SecurityException 安全检查异常
@@ -143,8 +152,8 @@ public class ReflectUtil {
/**
* 获得一个类中所有字段列表,直接反射获取,无缓存
- *
- * @param beanClass 类
+ *
+ * @param beanClass 类
* @param withSuperClassFieds 是否包括父类的字段列表
* @return 字段列表
* @throws SecurityException 安全检查异常
@@ -170,8 +179,8 @@ public class ReflectUtil {
/**
* 获取字段值
- *
- * @param obj 对象
+ *
+ * @param obj 对象
* @param fieldName 字段名
* @return 字段值
* @throws UtilException 包装IllegalAccessException异常
@@ -185,8 +194,8 @@ public class ReflectUtil {
/**
* 获取字段值
- *
- * @param obj 对象
+ *
+ * @param obj 对象
* @param field 字段
* @return 字段值
* @throws UtilException 包装IllegalAccessException异常
@@ -195,8 +204,8 @@ public class ReflectUtil {
if (null == obj || null == field) {
return null;
}
- field.setAccessible(true);
- Object result = null;
+ setAccessible(field);
+ Object result;
try {
result = field.get(obj);
} catch (IllegalAccessException e) {
@@ -207,6 +216,7 @@ public class ReflectUtil {
/**
* 获取所有字段的值
+ *
* @param obj bean对象
* @return 字段值数组
* @since 4.1.17
@@ -227,16 +237,16 @@ public class ReflectUtil {
/**
* 设置字段值
- *
- * @param obj 对象
+ *
+ * @param obj 对象
* @param fieldName 字段名
- * @param value 值,值类型必须与字段类型匹配,不会自动转换对象类型
+ * @param value 值,值类型必须与字段类型匹配,不会自动转换对象类型
* @throws UtilException 包装IllegalAccessException异常
*/
public static void setFieldValue(Object obj, String fieldName, Object value) throws UtilException {
Assert.notNull(obj);
Assert.notBlank(fieldName);
-
+
final Field field = getField(obj.getClass(), fieldName);
Assert.notNull(field, "Field [{}] is not exist in [{}]", fieldName, obj.getClass().getName());
setFieldValue(obj, field, value);
@@ -244,8 +254,8 @@ public class ReflectUtil {
/**
* 设置字段值
- *
- * @param obj 对象
+ *
+ * @param obj 对象
* @param field 字段
* @param value 值,值类型必须与字段类型匹配,不会自动转换对象类型
* @throws UtilException UtilException 包装IllegalAccessException异常
@@ -253,19 +263,20 @@ public class ReflectUtil {
public static void setFieldValue(Object obj, Field field, Object value) throws UtilException {
Assert.notNull(obj);
Assert.notNull(field, "Field in [{}] not exist !", obj.getClass().getName());
- field.setAccessible(true);
-
- if(null != value) {
+
+ setAccessible(field);
+
+ if (null != value) {
Class> fieldType = field.getType();
- if(false == fieldType.isAssignableFrom(value.getClass())) {
+ if (false == fieldType.isAssignableFrom(value.getClass())) {
//对于类型不同的字段,尝试转换,转换失败则使用原对象类型
final Object targetValue = Convert.convert(fieldType, value);
- if(null != targetValue) {
+ if (null != targetValue) {
value = targetValue;
}
}
}
-
+
try {
field.set(obj, value);
} catch (IllegalAccessException e) {
@@ -274,17 +285,18 @@ public class ReflectUtil {
}
// --------------------------------------------------------------------------------------------------------- method
+
/**
* 获得指定类本类及其父类中的Public方法名null
- *
- * @param clazz 类
+ *
+ * @param clazz 类
* @param methodName 方法名
* @param paramTypes 参数类型
* @return 方法
@@ -379,17 +391,17 @@ public class ReflectUtil {
return null;
}
}
-
+
/**
* 查找指定对象中的所有方法(包括非public方法),也包括父对象和Object类的方法
- *
+ *
*
* 此方法为精准获取方法名,即方法名和参数数量和类型必须一致,否则返回null
。
*
null
- *
+ *
*
* 此方法为精准获取方法名,即方法名和参数数量和类型必须一致,否则返回null
。
*
null
- *
+ *
*
* 此方法为精准获取方法名,即方法名和参数数量和类型必须一致,否则返回null
。
*
null
- *
+ *
*
* 此方法为精准获取方法名,即方法名和参数数量和类型必须一致,否则返回null
。
*
null
- *
+ *
* * 此方法只检查方法名是否一致,并不检查参数的一致性。 *
- * - * @param clazz 类,如果为{@code null}返回{@code null} + * + * @param clazz 类,如果为{@code null}返回{@code null} * @param methodName 方法名,如果为空字符串返回{@code null} * @return 方法 * @throws SecurityException 无权访问抛出异常 @@ -484,15 +496,15 @@ public class ReflectUtil { public static Method getMethodByName(Class> clazz, String methodName) throws SecurityException { return getMethodByName(clazz, false, methodName); } - + /** * 按照方法名查找指定方法名的方法,只返回匹配到的第一个方法,如果找不到对应的方法则返回null
- *
+ *
* * 此方法只检查方法名是否一致(忽略大小写),并不检查参数的一致性。 *
- * - * @param clazz 类,如果为{@code null}返回{@code null} + * + * @param clazz 类,如果为{@code null}返回{@code null} * @param methodName 方法名,如果为空字符串返回{@code null} * @return 方法 * @throws SecurityException 无权访问抛出异常 @@ -501,15 +513,15 @@ public class ReflectUtil { public static Method getMethodByNameIgnoreCase(Class> clazz, String methodName) throws SecurityException { return getMethodByName(clazz, true, methodName); } - + /** * 按照方法名查找指定方法名的方法,只返回匹配到的第一个方法,如果找不到对应的方法则返回null
- *
+ *
* * 此方法只检查方法名是否一致,并不检查参数的一致性。 *
- * - * @param clazz 类,如果为{@code null}返回{@code null} + * + * @param clazz 类,如果为{@code null}返回{@code null} * @param ignoreCase 是否忽略大小写 * @param methodName 方法名,如果为空字符串返回{@code null} * @return 方法 @@ -535,13 +547,13 @@ public class ReflectUtil { /** * 获得指定类中的Public方法名* 1. 参数个数是否与方法参数个数一致 * 2. 如果某个参数为null但是方法这个位置的参数为原始类型,则赋予原始类型默认值 *- * - * @param
null
+ *
+ * @param null
* @param method 方法(对象方法或static方法都可)
- * @param args 参数对象
+ * @param args 参数对象
* @return 结果
* @throws UtilException 一些列异常的包装
*/
@@ -774,19 +787,17 @@ public class ReflectUtil {
/**
* 执行方法
- *
- * @param null
+ *
+ * @param null
* @param method 方法(对象方法或static方法都可)
- * @param args 参数对象
+ * @param args 参数对象
* @return 结果
* @throws UtilException 一些列异常的包装
*/
@SuppressWarnings("unchecked")
public static