-
- 类型参数:
T
- 字段依附的类F
- 字段的数据类型
public interface Attribute<T,F>
该类实现动态映射一个JavaBean类中成员对应的getter、setter方法; 代替低效的反射实现方式。public class Record { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }
Attribute<Record, String> nameAction = Attribute.create(Record.class.getDeclaredField("name"));
Attribute<Record, String> nameAction = new Attribute<Record, String>() { private java.lang.reflect.Type _gtype = String.class; private java.lang.Object _attach; @Override public String field() { return "name"; } @Override public String get(Record obj) { return obj.getName(); } @Override public void set(Record obj, String value) { obj.setName(value); } @Override public Class type() { return String.class; } @Override public java.lang.reflect.Type genericType() { return _gtype; } @Override public Object attach() { return _attach; } @Override public Class declaringClass() { return Record.class; } };
映射Field时,field必须满足以下条件之一:
1、field属性是public且非final
2、至少存在对应的getter、setter方法中的一个
当不存在getter方法时,get操作固定返回null
当不存在setter方法时,set操作为空方法
详情见: https://redkale.org
- 作者:
- zhangjx
-
-
方法概要
所有方法 静态方法 实例方法 抽象方法 默认方法 修饰符和类型 方法 说明 default <E> E
attach()
附加对象static <T,F>
Attribute<T,F>[]create(Class<T> clazz)
根据Class生成getter、setter方法都存在的字段对应的 Attribute 对象数组。static <T,F>
Attribute<T,F>create(Class<T> subclass, Class<T> clazz, Field field)
根据一个Class和Field生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> subclass, Class<T> clazz, Field field, Object attach)
根据一个Class和Field生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, Field field)
根据一个Class和Field生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, Field field, Object attach)
根据一个Class和Field生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, Method getter, Method setter)
根据Class、getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, Method getter, Method setter, Object attach)
根据Class、getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldName)
根据一个Class和field真实名称生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldAlias, Class<F> fieldType)
根据Class、字段别名、字段类型生成虚构的 Attribute 对象,get、set方法为空方法。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldAlias, Class<F> fieldType, Object attach)
根据Class、字段别名、字段类型生成虚构的 Attribute 对象,get、set方法为空方法。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldAlias, Class<F> fieldType, Field field, Method getter, Method setter)
根据Class、字段别名、字段类型、Field、getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldAlias, Class<F> fieldType, Field field, Method getter, Method setter, Object attach)
根据Class、字段别名、字段类型、Field、getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldName, Class<F> fieldType, Type fieldGenericType, Function<T,F> getter, BiConsumer<T,F> setter)
根据Class、字段名、字段类型、getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldName, Class<F> fieldType, Type fieldGenericType, Function<T,F> getter, BiConsumer<T,F> setter, Object attach)
根据Class、字段名、字段类型、getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldName, Class<F> fieldType, Function<T,F> getter, BiConsumer<T,F> setter)
根据Class、字段名、字段类型、getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldName, Class<F> fieldType, Function<T,F> getter, BiConsumer<T,F> setter, Object attach)
根据Class、字段名、字段类型、getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldName, Object attach)
根据一个Class和field真实名称生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldAlias, Field field)
根据一个Class、field别名和Field生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldAlias, Field field, Object attach)
根据一个Class、field别名和Field生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldAlias, Field field, Method getter, Method setter)
根据Class、字段别名、Field、getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldAlias, Field field, Method getter, Method setter, Object attach)
根据Class、字段别名、Field、getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldAlias, Method getter, Method setter)
根据Class、字段别名、getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Class<T> clazz, String fieldAlias, Method getter, Method setter, Object attach)
根据Class、字段别名、getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Field field)
根据一个Field生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Field field, Object attach)
根据一个Field生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Method getter, Method setter)
根据一个getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Method getter, Method setter, Object attach)
根据一个getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(Type subclass, Class<T> clazz, String fieldAlias, Class<F> fieldType, Field field, Method getter, Method setter, Object attach)
根据Class、字段别名、字段类型、Field、getter和setter方法生成 Attribute 对象。static <T,F>
Attribute<T,F>create(String fieldAlias, Field field)
根据一个Field和field的别名生成 Attribute 对象。static <T,F>
Attribute<T,F>create(String fieldAlias, Field field, Object attach)
根据一个Field和field的别名生成 Attribute 对象。static <T,F>
Attribute<T,F>createGetter(Class<T> clazz, String fieldName)
根据一个Class和字段名生成 Attribute 的getter对象。static <T,F>
Attribute<T,F>[]createGetters(Class<T> clazz)
根据Class生成getter方法对应的 Attribute 对象数组。static <T,F>
Attribute<T,F>[]createSetters(Class<T> clazz)
根据Class生成setter方法对应的 Attribute 对象数组。Class<T>
declaringClass()
返回字段依附的类名String
field()
返回字段名default Type
genericType()
返回字段的数据泛型F
get(T obj)
获取指定对象的该字段的值static <T extends Map,F>
Attribute<T,F>map(String fieldName)
根据Map类生成 Attribute 对象。void
set(T obj, F value)
给指定对象的该字段赋值Class<? extends F>
type()
返回字段的数据类型
-
-
-
方法详细资料
-
attach
@Nullable default <E> E attach()
附加对象- 类型参数:
E
- 泛型- 返回:
- 附加对象
-
create
static <T,F> Attribute<T,F> create(Field field)
根据一个Field生成 Attribute 对象。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
field
- 字段,如果该字段不存在则抛异常- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Field field, Object attach)
根据一个Field生成 Attribute 对象。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
field
- 字段,如果该字段不存在则抛异常attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(String fieldAlias, Field field)
根据一个Field和field的别名生成 Attribute 对象。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
fieldAlias
- 别名field
- 字段,如果该字段不存在则抛异常- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(String fieldAlias, Field field, Object attach)
根据一个Field和field的别名生成 Attribute 对象。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
fieldAlias
- 别名field
- 字段,如果该字段不存在则抛异常attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, String fieldName)
根据一个Class和field真实名称生成 Attribute 对象。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldName
- 字段名,如果该字段不存在则抛异常- 返回:
- Attribute对象
-
createGetter
static <T,F> Attribute<T,F> createGetter(Class<T> clazz, String fieldName)
根据一个Class和字段名生成 Attribute 的getter对象。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldName
- 字段名,如果该字段不存在则抛异常- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, String fieldName, Object attach)
根据一个Class和field真实名称生成 Attribute 对象。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldName
- 字段名,如果该字段不存在则抛异常attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, Field field)
根据一个Class和Field生成 Attribute 对象。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类field
- 字段,如果该字段不存在则抛异常- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> subclass, Class<T> clazz, Field field)
根据一个Class和Field生成 Attribute 对象。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
subclass
- 指定依附的子类clazz
- 指定依附的类field
- 字段,如果该字段不存在则抛异常- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, Field field, Object attach)
根据一个Class和Field生成 Attribute 对象。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类field
- 字段,如果该字段不存在则抛异常attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> subclass, Class<T> clazz, Field field, Object attach)
根据一个Class和Field生成 Attribute 对象。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
subclass
- 指定依附的子类clazz
- 指定依附的类field
- 字段,如果该字段不存在则抛异常attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, String fieldAlias, Field field)
根据一个Class、field别名和Field生成 Attribute 对象。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldAlias
- 字段别名field
- 字段,如果该字段不存在则抛异常- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, String fieldAlias, Field field, Object attach)
根据一个Class、field别名和Field生成 Attribute 对象。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldAlias
- 字段别名field
- 字段,如果该字段不存在则抛异常attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Method getter, Method setter)
根据一个getter和setter方法生成 Attribute 对象。 tgetter、setter不能同时为null- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
getter
- getter方法setter
- setter方法- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Method getter, Method setter, Object attach)
根据一个getter和setter方法生成 Attribute 对象。 tgetter、setter不能同时为null- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
getter
- getter方法setter
- setter方法attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, Method getter, Method setter)
根据Class、getter和setter方法生成 Attribute 对象。 tgetter、setter不能同时为null- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类getter
- getter方法setter
- setter方法- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, Method getter, Method setter, Object attach)
根据Class、getter和setter方法生成 Attribute 对象。 tgetter、setter不能同时为null- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类getter
- getter方法setter
- setter方法attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F>[] create(Class<T> clazz)
根据Class生成getter、setter方法都存在的字段对应的 Attribute 对象数组。- 类型参数:
T
- 依附类的类型F
- 字段的类型- 参数:
clazz
- 指定依附的类- 返回:
- Attribute对象数组
-
createGetters
static <T,F> Attribute<T,F>[] createGetters(Class<T> clazz)
根据Class生成getter方法对应的 Attribute 对象数组。- 类型参数:
T
- 依附类的类型F
- 字段的类型- 参数:
clazz
- 指定依附的类- 返回:
- Attribute对象数组
-
createSetters
static <T,F> Attribute<T,F>[] createSetters(Class<T> clazz)
根据Class生成setter方法对应的 Attribute 对象数组。- 类型参数:
T
- 依附类的类型F
- 字段的类型- 参数:
clazz
- 指定依附的类- 返回:
- Attribute对象数组
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, String fieldAlias, Method getter, Method setter)
根据Class、字段别名、getter和setter方法生成 Attribute 对象。 tgetter、setter不能同时为null- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldAlias
- 字段别名getter
- getter方法setter
- setter方法- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, String fieldAlias, Method getter, Method setter, Object attach)
根据Class、字段别名、getter和setter方法生成 Attribute 对象。 tgetter、setter不能同时为null- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldAlias
- 字段别名getter
- getter方法setter
- setter方法attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, String fieldAlias, Field field, Method getter, Method setter)
根据Class、字段别名、Field、getter和setter方法生成 Attribute 对象。 Field、tgetter、setter不能同时为null- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldAlias
- 字段别名field
- 字段getter
- getter方法setter
- setter方法- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, String fieldAlias, Field field, Method getter, Method setter, Object attach)
根据Class、字段别名、Field、getter和setter方法生成 Attribute 对象。 Field、tgetter、setter不能同时为null- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldAlias
- 字段别名field
- 字段getter
- getter方法setter
- setter方法attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, String fieldAlias, Class<F> fieldType)
根据Class、字段别名、字段类型生成虚构的 Attribute 对象,get、set方法为空方法。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldAlias
- 字段别名fieldType
- 字段的类- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, String fieldAlias, Class<F> fieldType, Object attach)
根据Class、字段别名、字段类型生成虚构的 Attribute 对象,get、set方法为空方法。- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldAlias
- 字段别名fieldType
- 字段的类attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, String fieldAlias, Class<F> fieldType, Field field, Method getter, Method setter)
根据Class、字段别名、字段类型、Field、getter和setter方法生成 Attribute 对象。 fieldAlias/fieldType、Field、tgetter、setter不能同时为null.- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldAlias
- 字段别名fieldType
- 字段类型field
- 字段getter
- getter方法setter
- setter方法- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Class<T> clazz, String fieldAlias, Class<F> fieldType, Field field, Method getter, Method setter, Object attach)
根据Class、字段别名、字段类型、Field、getter和setter方法生成 Attribute 对象。 fieldAlias/fieldType、Field、getter、setter不能同时为null.- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldAlias
- 字段别名fieldType
- 字段类型field
- 字段getter
- getter方法setter
- setter方法attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(Type subclass, Class<T> clazz, String fieldAlias, Class<F> fieldType, Field field, Method getter, Method setter, Object attach)
根据Class、字段别名、字段类型、Field、getter和setter方法生成 Attribute 对象。 fieldAlias/fieldType、Field、tgetter、setter不能同时为null.- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
subclass
- 指定依附的子类clazz
- 指定依附的类fieldAlias
- 字段别名fieldType
- 字段类型field
- 字段getter
- getter方法setter
- setter方法attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(@Nonnull Class<T> clazz, @Nonnull String fieldName, @Nonnull Class<F> fieldType, Function<T,F> getter, BiConsumer<T,F> setter)
根据Class、字段名、字段类型、getter和setter方法生成 Attribute 对象。 clazz、fieldName、fieldType都不能为null- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldName
- 字段名fieldType
- 字段类型getter
- getter方法setter
- setter方法- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(@Nonnull Class<T> clazz, @Nonnull String fieldName, @Nonnull Class<F> fieldType, Function<T,F> getter, BiConsumer<T,F> setter, Object attach)
根据Class、字段名、字段类型、getter和setter方法生成 Attribute 对象。 clazz、fieldName、fieldType都不能为null- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldName
- 字段名fieldType
- 字段类型getter
- getter方法setter
- setter方法attach
- 附加对象- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(@Nonnull Class<T> clazz, @Nonnull String fieldName, @Nonnull Class<F> fieldType, Type fieldGenericType, Function<T,F> getter, BiConsumer<T,F> setter)
根据Class、字段名、字段类型、getter和setter方法生成 Attribute 对象。 clazz、fieldName、fieldType都不能为null- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldName
- 字段名fieldType
- 字段类型fieldGenericType
- 字段泛型getter
- getter方法setter
- setter方法- 返回:
- Attribute对象
-
create
static <T,F> Attribute<T,F> create(@Nonnull Class<T> clazz, @Nonnull String fieldName, @Nonnull Class<F> fieldType, Type fieldGenericType, Function<T,F> getter, BiConsumer<T,F> setter, Object attach)
根据Class、字段名、字段类型、getter和setter方法生成 Attribute 对象。 clazz、fieldName、fieldType都不能为null- 类型参数:
T
- 依附类的类型F
- 字段类型- 参数:
clazz
- 指定依附的类fieldName
- 字段名fieldType
- 字段类型fieldGenericType
- 字段泛型getter
- getter方法setter
- setter方法attach
- 附加对象- 返回:
- Attribute对象
-
-