diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/FieldUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/FieldUtil.java
index e31c11e19..eca7f2c3d 100644
--- a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/FieldUtil.java
+++ b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/FieldUtil.java
@@ -105,7 +105,7 @@ public class FieldUtil {
* @param name 字段名称
* @return 字段对象,如果未找到返回{@code null}
*/
- public static Field getDeClearField(final Class> beanClass, final String name) {
+ public static Field getDeclearField(final Class> beanClass, final String name) {
try {
return beanClass.getDeclaredField(name);
} catch (final NoSuchFieldException e) {
diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/method/MethodHandleUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/method/MethodHandleUtil.java
index 8afc77ec5..fa3510eb1 100644
--- a/hutool-core/src/main/java/org/dromara/hutool/core/reflect/method/MethodHandleUtil.java
+++ b/hutool-core/src/main/java/org/dromara/hutool/core/reflect/method/MethodHandleUtil.java
@@ -40,7 +40,7 @@ import java.lang.reflect.Method;
public class MethodHandleUtil {
/**
- * 执行方法句柄,{@link MethodHandle#invoke(Object...)}包装
+ * 执行方法句柄,{@link MethodHandle#invokeWithArguments(Object...)}包装
*
* @param methodHandle {@link MethodHandle}
* @param args 方法参数值,支持子类转换和自动拆装箱
diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/util/JdkUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/util/JdkUtil.java
index 0f59f73ea..6877ecb4a 100644
--- a/hutool-core/src/main/java/org/dromara/hutool/core/util/JdkUtil.java
+++ b/hutool-core/src/main/java/org/dromara/hutool/core/util/JdkUtil.java
@@ -39,6 +39,10 @@ public class JdkUtil {
* 是否Android环境
*/
public static final boolean IS_ANDROID;
+ /**
+ * 是否OPENJ9环境
+ */
+ public static final boolean IS_OPENJ9;
static {
// JVM版本
@@ -49,6 +53,7 @@ public class JdkUtil {
// JVM名称
final String jvmName = _getJvmName();
IS_ANDROID = jvmName.equals("Dalvik");
+ IS_OPENJ9 = jvmName.contains("OpenJ9");
}
/**
diff --git a/hutool-core/src/main/java/org/dromara/hutool/core/util/UnsafeUtil.java b/hutool-core/src/main/java/org/dromara/hutool/core/util/UnsafeUtil.java
deleted file mode 100644
index 555a2a4f5..000000000
--- a/hutool-core/src/main/java/org/dromara/hutool/core/util/UnsafeUtil.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2024. looly(loolly@aliyun.com)
- * Hutool is licensed under Mulan PSL v2.
- * You can use this software according to the terms and conditions of the Mulan PSL v2.
- * You may obtain a copy of Mulan PSL v2 at:
- * https://license.coscl.org.cn/MulanPSL2
- * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
- * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
- * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
- * See the Mulan PSL v2 for more details.
- */
-
-package org.dromara.hutool.core.util;
-
-import org.dromara.hutool.core.reflect.FieldUtil;
-import sun.misc.Unsafe;
-
-import java.lang.reflect.Field;
-
-/**
- * {@link Unsafe}对象获取工具
- * 参考:fastjson2/util/JDKUtils.java
- * 此工具类通过反射获取,绕开安全检查。
- *
- * @author Looly
- * @since 6.0.0
- */
-public class UnsafeUtil {
- private static final Unsafe UNSAFE;
-
- static {
- final String fieldName = JdkUtil.IS_ANDROID ? "THE_ONE" : "theUnsafe";
- final Field theUnsafeField = FieldUtil.getField(Unsafe.class, fieldName);
- UNSAFE = (Unsafe) FieldUtil.getStaticFieldValue(theUnsafeField);
- }
-
- /**
- * 获取{@link Unsafe}对象
- *
- * @return {@link Unsafe}
- */
- public static Unsafe getUnsafe() {
- return UNSAFE;
- }
-}
diff --git a/hutool-core/src/test/java/org/dromara/hutool/core/reflect/FieldUtilTest.java b/hutool-core/src/test/java/org/dromara/hutool/core/reflect/FieldUtilTest.java
index 8b37f0461..ba9cf70c3 100644
--- a/hutool-core/src/test/java/org/dromara/hutool/core/reflect/FieldUtilTest.java
+++ b/hutool-core/src/test/java/org/dromara/hutool/core/reflect/FieldUtilTest.java
@@ -46,7 +46,7 @@ public class FieldUtilTest {
Assertions.assertNull(noField);
// 获取不到父类字段
- final Field field = FieldUtil.getDeClearField(ReflectUtilTest.TestSubClass.class, "field");
+ final Field field = FieldUtil.getDeclearField(ReflectUtilTest.TestSubClass.class, "field");
Assertions.assertNull(field);
final Field subField = FieldUtil.getField(ReflectUtilTest.TestSubClass.class, "subField");