fix getFieldValue and add test

This commit is contained in:
Looly 2019-12-09 15:51:46 +08:00
parent c804ebfbc1
commit bddb97704e
3 changed files with 17 additions and 5 deletions

View File

@ -7,6 +7,7 @@
### 新特性
* 【core 】 新增WatchServerissue#440@Github
* 【core 】 ReflectUtil.getFieldValue支持staticissue#662@Github
### Bug修复

View File

@ -214,13 +214,13 @@ public class ReflectUtil {
/**
* 获取字段值
*
* @param obj 对象
* @param obj 对象static字段则此字段为null
* @param field 字段
* @return 字段值
* @throws UtilException 包装IllegalAccessException异常
*/
public static Object getFieldValue(Object obj, Field field) throws UtilException {
if (null == obj || null == field) {
if (null == field) {
return null;
}
setAccessible(field);
@ -228,7 +228,7 @@ public class ReflectUtil {
try {
result = field.get(obj);
} catch (IllegalAccessException e) {
throw new UtilException(e, "IllegalAccess for {}.{}", obj.getClass(), field.getName());
throw new UtilException(e, "IllegalAccess for {}.{}", field.getDeclaringClass(), field.getName());
}
return result;
}
@ -274,13 +274,12 @@ public class ReflectUtil {
/**
* 设置字段值
*
* @param obj 对象
* @param obj 对象如果是static字段此参数为null
* @param field 字段
* @param value 值类型必须与字段类型匹配不会自动转换对象类型
* @throws UtilException UtilException 包装IllegalAccessException异常
*/
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());
setAccessible(field);

View File

@ -37,6 +37,18 @@ public class SmTest {
Assert.assertEquals(content, decryptStr);
}
@Test
public void sm4Test2() {
String content = "test中文";
SM4 sm4 = new SM4(Mode.CTR, Padding.PKCS5Padding);
sm4.setIv("aaaabbbb".getBytes());
String encryptHex = sm4.encryptHex(content);
String decryptStr = sm4.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8);
Assert.assertEquals(content, decryptStr);
}
@Test
public void sm4ECBPKCS5PaddingTest2() {
String content = "test中文";