diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6ffba8a9c..be17681eb 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,7 +2,7 @@
# 🚀Changelog
-------------------------------------------------------------------------------------------------------------
-# 5.8.28(2024-05-08)
+# 5.8.28(2024-05-09)
### 🐣新特性
* 【core 】 修正XmlUtil的omitXmlDeclaration描述注释(issue#I9CPC7@Gitee)
@@ -16,6 +16,7 @@
* 【captcha】 HttpDownloader.downloadBytes增加超时参数重载(issue#3556@Github)
* 【http 】 增加ExceptionFilter和DefaultExceptionFilter支持异常处理(issue#3568@Github)
* 【poi 】 增加ExcelWriter.addIgnoredErrors,支持忽略警告小标
+* 【core 】 PropertyComparator增加compareSelf构造重载(issue#3569@Github)
### 🐞Bug修复
* 【http 】 修复HttpUtil.urlWithFormUrlEncoded方法重复编码问题(issue#3536@Github)
diff --git a/hutool-core/src/main/java/cn/hutool/core/comparator/PropertyComparator.java b/hutool-core/src/main/java/cn/hutool/core/comparator/PropertyComparator.java
index c94ced29e..af8853710 100644
--- a/hutool-core/src/main/java/cn/hutool/core/comparator/PropertyComparator.java
+++ b/hutool-core/src/main/java/cn/hutool/core/comparator/PropertyComparator.java
@@ -6,9 +6,8 @@ import cn.hutool.core.bean.BeanUtil;
* Bean属性排序器
* 支持读取Bean多层次下的属性
*
- * @author Looly
- *
* @param 被比较的Bean
+ * @author Looly
*/
public class PropertyComparator extends FuncComparator {
private static final long serialVersionUID = 9157326766723846313L;
@@ -25,10 +24,23 @@ public class PropertyComparator extends FuncComparator {
/**
* 构造
*
- * @param property 属性名
+ * @param property 属性名
* @param isNullGreater null值是否排在后(从小到大排序)
*/
public PropertyComparator(String property, boolean isNullGreater) {
- super(isNullGreater, (bean)-> BeanUtil.getProperty(bean, property));
+ this(property, true, isNullGreater);
+ }
+
+ /**
+ * 构造
+ *
+ * @param property 属性名
+ * @param compareSelf 在字段值相同情况下,是否比较对象本身。
+ * 如果此项为{@code false},字段值比较后为0会导致对象被认为相同,可能导致被去重。
+ * @param isNullGreater null值是否排在后(从小到大排序)
+ * @since 5.8.28
+ */
+ public PropertyComparator(String property, final boolean compareSelf, boolean isNullGreater) {
+ super(isNullGreater, compareSelf, (bean) -> BeanUtil.getProperty(bean, property));
}
}