返回值类型
+ * @param funcs 忽略的目标对象中属性列表,设置一个属性列表,不拷贝这些属性值
+ * @return this
+ */
+ public CopyOptions setIgnoreProperties(Func1
... funcs) {
+ final Set ignoreProperties = ArrayKit.mapToSet(funcs, LambdaKit::getFieldName);
+ return setPropertiesFilter((field, o) -> false == ignoreProperties.contains(field.getName()));
+ }
+
/**
* 设置是否忽略字段的注入错误
*
@@ -273,7 +294,7 @@ protected Object editFieldValue(String fieldName, Object fieldValue) {
}
/**
- * 设置是否支持transient关键字修饰和@Transient注解,如果支持,被修饰的字段或方法对应的字段将被忽略。
+ * 设置是否支持transient关键字修饰和@Transient注解,如果支持,被修饰的字段或方法对应的字段将被忽略
*
* @param transientSupport 是否支持
* @return this
@@ -284,7 +305,7 @@ public CopyOptions setTransientSupport(boolean transientSupport) {
}
/**
- * 设置是否覆盖目标值,如果不覆盖,会先读取目标对象的值,非{@code null}则写,否则忽略。如果覆盖,则不判断直接写
+ * 设置是否覆盖目标值,如果不覆盖,会先读取目标对象的值,非{@code null}则写,否则忽略如果覆盖,则不判断直接写
*
* @param override 是否覆盖目标值
* @return this
@@ -294,6 +315,30 @@ public CopyOptions setOverride(boolean override) {
return this;
}
+ /**
+ * 设置自定义类型转换器,默认使用全局万能转换器转换
+ *
+ * @param converter 转换器
+ * @return this
+ */
+ public CopyOptions setConverter(TypeConverter converter) {
+ this.converter = converter;
+ return this;
+ }
+
+ /**
+ * 使用自定义转换器转换字段值
+ * 如果自定义转换器为{@code null},则返回原值
+ *
+ * @param targetType 目标类型
+ * @param fieldValue 字段值
+ * @return 编辑后的字段值
+ */
+ protected Object convertField(Type targetType, Object fieldValue) {
+ return (null != this.converter) ?
+ this.converter.convert(targetType, fieldValue) : fieldValue;
+ }
+
/**
* 转换字段名为编辑后的字段名
*
diff --git a/bus-core/src/main/java/org/aoju/bus/core/beans/copier/MapToBeanCopier.java b/bus-core/src/main/java/org/aoju/bus/core/beans/copier/MapToBeanCopier.java
index 6195d0c979..c81737223c 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/beans/copier/MapToBeanCopier.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/beans/copier/MapToBeanCopier.java
@@ -26,7 +26,6 @@
package org.aoju.bus.core.beans.copier;
import org.aoju.bus.core.beans.PropertyDesc;
-import org.aoju.bus.core.convert.Convert;
import org.aoju.bus.core.lang.Assert;
import org.aoju.bus.core.map.CaseInsensitiveMap;
import org.aoju.bus.core.map.MapWrapper;
@@ -42,7 +41,6 @@
*
* @param 目标Bean类型
* @author Kimi Liu
- * @version 6.5.0
* @since Java 17+
*/
public class MapToBeanCopier extends AbstractCopier
*
* @author Kimi Liu
- * @version 6.5.0
* @since Java 17+
*/
public class ReflectionBuilder implements Builder {
diff --git a/bus-core/src/main/java/org/aoju/bus/core/builder/ReflectionToStringBuilder.java b/bus-core/src/main/java/org/aoju/bus/core/builder/ReflectionToStringBuilder.java
index 5850100482..f8c74458f0 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/builder/ReflectionToStringBuilder.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/builder/ReflectionToStringBuilder.java
@@ -55,7 +55,6 @@
*
*
* @author Kimi Liu
- * @version 6.5.0
* @since Java 17+
*/
public class ReflectionToStringBuilder extends ToStringBuilder {
diff --git a/bus-core/src/main/java/org/aoju/bus/core/builder/StandardToStringStyle.java b/bus-core/src/main/java/org/aoju/bus/core/builder/StandardToStringStyle.java
index 052e2c0050..cec78738e6 100755
--- a/bus-core/src/main/java/org/aoju/bus/core/builder/StandardToStringStyle.java
+++ b/bus-core/src/main/java/org/aoju/bus/core/builder/StandardToStringStyle.java
@@ -34,7 +34,6 @@
*