public class CopyOptions extends Object implements Serializable
| 限定符和类型 | 字段和说明 |
|---|---|
protected Converter |
converter
自定义类型转换器,默认使用全局万能转换器转换
|
protected Class<?> |
editable
限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性,例如一个类我只想复制其父类的一些属性,就可以将editable设置为父类
如果目标对象是Map,源对象是Bean,则作用于源对象上 |
protected UnaryOperator<MutableEntry<String,Object>> |
fieldEditor
字段属性名和属性值编辑器,用于自定义属性转换规则(例如驼峰转下划线等),自定义属性值转换规则(例如null转""等)
|
protected boolean |
ignoreCase
是否忽略字段大小写
|
protected boolean |
ignoreError
是否忽略字段注入错误
|
protected boolean |
ignoreNullValue
是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入null
|
protected boolean |
override
是否覆盖目标值,如果不覆盖,会先读取目标对象的值,为
null则写,否则忽略。 |
protected boolean |
transientSupport
是否支持transient关键字修饰和@Transient注解,如果支持,被修饰的字段或方法对应的字段将被忽略。
|
| 构造器和说明 |
|---|
CopyOptions()
构造拷贝选项
|
CopyOptions(Class<?> editable,
boolean ignoreNullValue,
String... ignoreProperties)
构造拷贝选项
|
| 限定符和类型 | 方法和说明 |
|---|---|
protected Object |
convertField(Type targetType,
Object fieldValue)
使用自定义转换器转换字段值
如果自定义转换器为 null,则返回原值。 |
protected MutableEntry<String,Object> |
editField(String fieldName,
Object fieldValue)
编辑字段值
|
CopyOptions |
ignoreCase()
设置忽略字段的大小写
|
CopyOptions |
ignoreError()
设置忽略字段的注入错误
|
CopyOptions |
ignoreNullValue()
设置忽略空值,当源对象的值为null时,忽略而不注入此值
|
static CopyOptions |
of()
创建拷贝选项
|
static CopyOptions |
of(Class<?> editable,
boolean ignoreNullValue,
String... ignoreProperties)
创建拷贝选项
|
CopyOptions |
setConverter(Converter converter)
设置自定义类型转换器,默认使用全局万能转换器转换。
|
CopyOptions |
setEditable(Class<?> editable)
设置限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性
|
CopyOptions |
setFieldEditor(UnaryOperator<MutableEntry<String,Object>> editor)
设置字段属性编辑器,用于自定义属性转换规则,例如驼峰转下划线等
此转换器只针对源端的字段做转换,请确认转换后与目标端字段一致 当转换后的字段名为null时忽略这个字段 需要注意的是,当使用ValueProvider作为数据提供者时,这个映射是相反的,即参数中key为目标Bean的名称,而返回值是提供者中的key,并且对值的修改无效 |
CopyOptions |
setFieldMapping(Map<String,String> fieldMapping)
设置拷贝属性的字段映射,用于不同的属性之前拷贝做对应表用
需要注意的是,当使用ValueProvider作为数据提供者时,这个映射是相反的,即fieldMapping中key为目标Bean的名称,而value是提供者中的key |
CopyOptions |
setIgnoreCase(boolean ignoreCase)
设置是否忽略字段的大小写
|
CopyOptions |
setIgnoreError(boolean ignoreError)
设置是否忽略字段的注入错误
|
CopyOptions |
setIgnoreNullValue(boolean ignoreNullVall)
设置是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入null
|
<P,R> CopyOptions |
setIgnoreProperties(SerFunction<P,R>... funcs)
设置忽略的目标对象中属性列表,设置一个属性列表,不拷贝这些属性值,Lambda方式
|
CopyOptions |
setIgnoreProperties(String... ignoreProperties)
设置忽略的目标对象中属性列表,设置一个属性列表,不拷贝这些属性值
|
CopyOptions |
setOverride(boolean override)
设置是否覆盖目标值,如果不覆盖,会先读取目标对象的值,为
null则写,否则忽略。 |
CopyOptions |
setPropertiesFilter(BiPredicate<Field,Object> propertiesFilter)
|
CopyOptions |
setTransientSupport(boolean transientSupport)
设置是否支持transient关键字修饰和@Transient注解,如果支持,被修饰的字段或方法对应的字段将被忽略。
|
protected boolean |
testPropertyFilter(Field field,
Object value)
测试是否保留字段,
true保留,false不保留 |
protected Class<?> editable
protected boolean ignoreNullValue
protected boolean ignoreError
protected boolean ignoreCase
protected UnaryOperator<MutableEntry<String,Object>> fieldEditor
protected boolean transientSupport
protected boolean override
null则写,否则忽略。如果覆盖,则不判断直接写protected Converter converter
public static CopyOptions of()
public static CopyOptions of(Class<?> editable, boolean ignoreNullValue, String... ignoreProperties)
editable - 限制的类或接口,必须为目标对象的实现接口或父类,用于限制拷贝的属性ignoreNullValue - 是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入nullignoreProperties - 忽略的属性列表,设置一个属性列表,不拷贝这些属性值public CopyOptions setEditable(Class<?> editable)
editable - 限制的类或接口public CopyOptions setIgnoreNullValue(boolean ignoreNullVall)
ignoreNullVall - 是否忽略空值,当源对象的值为null时,true: 忽略而不注入此值,false: 注入nullpublic CopyOptions ignoreNullValue()
public CopyOptions setPropertiesFilter(BiPredicate<Field,Object> propertiesFilter)
propertiesFilter - 属性过滤器public CopyOptions setIgnoreProperties(String... ignoreProperties)
ignoreProperties - 忽略的目标对象中属性列表,设置一个属性列表,不拷贝这些属性值public <P,R> CopyOptions setIgnoreProperties(SerFunction<P,R>... funcs)
P - 参数类型R - 返回值类型funcs - 忽略的目标对象中属性列表,设置一个属性列表,不拷贝这些属性值public CopyOptions setIgnoreError(boolean ignoreError)
ignoreError - 是否忽略注入错误public CopyOptions ignoreError()
public CopyOptions setIgnoreCase(boolean ignoreCase)
ignoreCase - 是否忽略大小写public CopyOptions ignoreCase()
public CopyOptions setFieldMapping(Map<String,String> fieldMapping)
fieldMapping - 拷贝属性的字段映射,用于不同的属性之前拷贝做对应表用public CopyOptions setFieldEditor(UnaryOperator<MutableEntry<String,Object>> editor)
editor - 字段属性编辑器,用于自定义属性转换规则,例如驼峰转下划线等protected MutableEntry<String,Object> editField(String fieldName, Object fieldValue)
fieldName - 字段名fieldValue - 字段值public CopyOptions setTransientSupport(boolean transientSupport)
transientSupport - 是否支持public CopyOptions setOverride(boolean override)
null则写,否则忽略。如果覆盖,则不判断直接写override - 是否覆盖目标值public CopyOptions setConverter(Converter converter)
converter - 转换器protected Object convertField(Type targetType, Object fieldValue)
null,则返回原值。targetType - 目标类型fieldValue - 字段值Copyright © 2023. All rights reserved.