From de4cc1645437c9754bb4dd0047c8b69951efadda Mon Sep 17 00:00:00 2001
From: Looly
- * 只要不会被编译器内联优化的 final 属性就可以通过反射有效的进行修改 -- 修改后代码中可使用到新的值;
- * 以下属性,编译器会内联优化,无法通过反射修改:
- *
- * 以下属性,可以通过反射修改:
- *
- *
- *
以下属性,编译器会内联优化,无法通过反射修改:
+ ** {@code * //示例,移除final修饰符 @@ -288,12 +286,13 @@ public class ModifierUtil { * Field field = ReflectUtil.getField(JdbcDialects.class, fieldName); * ReflectUtil.removeFinalModify(field); * ReflectUtil.setFieldValue(JdbcDialects.class, fieldName, dialects); - * } + * } *+ * * @param field 被修改的field,不可以为空 * @throws UtilException IllegalAccessException等异常包装 - * @since 5.8.8 * @author dazer + * @since 5.8.8 */ public static void removeFinalModify(Field field) { if (field != null) { diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ReflectUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ReflectUtil.java index fdfcd3ae0..95800d2b1 100755 --- a/hutool-core/src/main/java/cn/hutool/core/util/ReflectUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/ReflectUtil.java @@ -1112,20 +1112,18 @@ public class ReflectUtil { /** * 设置final的field字段可以被修改 - *
- * 只要不会被编译器内联优化的 final 属性就可以通过反射有效的进行修改 -- 修改后代码中可使用到新的值; - *
以下属性,编译器会内联优化,无法通过反射修改:
- *以下属性,编译器会内联优化,无法通过反射修改:
+ ** {@code * //示例,移除final修饰符 @@ -1133,12 +1131,13 @@ public class ReflectUtil { * Field field = ReflectUtil.getField(JdbcDialects.class, fieldName); * ReflectUtil.removeFinalModify(field); * ReflectUtil.setFieldValue(JdbcDialects.class, fieldName, dialects); - * } + * } *+ * * @param field 被修改的field,不可以为空 * @throws UtilException IllegalAccessException等异常包装 - * @since 5.8.8 * @author dazer + * @since 5.8.8 */ public static void removeFinalModify(Field field) { ModifierUtil.removeFinalModify(field);