T
- 字段依附的类F
- 字段的数据类型public interface Attribute<T,F>
获取name的 Attribute :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; @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 Class declaringClass() { return Record.class; } };
映射Field时,field必须满足以下条件之一:
1、field属性是public且非final
2、至少存在对应的getter、setter方法中的一个
当不存在getter方法时,get操作固定返回null
当不存在setter方法时,set操作为空方法
详情见: https://redkale.org
限定符和类型 | 方法和说明 |
---|---|
default <E> E |
attach()
附加对象
|
static <T> Attribute<T,?>[] |
create(java.lang.Class<T> clazz)
根据Class生成getter、setter方法都存在的字段对应的 Attribute 对象数组。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.reflect.Field field)
根据一个Class和Field生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.reflect.Field field,
java.lang.Object attach)
根据一个Class和Field生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.reflect.Method getter,
java.lang.reflect.Method setter)
根据Class、getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.reflect.Method getter,
java.lang.reflect.Method setter,
java.lang.Object attach)
根据Class、getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldname)
根据一个Class和field真实名称生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldalias,
java.lang.Class<F> fieldtype)
根据Class、字段别名、字段类型生成虚构的 Attribute 对象,get、set方法为空方法。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldalias,
java.lang.Class<F> fieldtype,
java.lang.reflect.Field field,
java.lang.reflect.Method getter,
java.lang.reflect.Method setter)
根据Class、字段别名、字段类型、Field、getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldalias,
java.lang.Class<F> fieldtype,
java.lang.reflect.Field field,
java.lang.reflect.Method getter,
java.lang.reflect.Method setter,
java.lang.Object attach)
根据Class、字段别名、字段类型、Field、getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldname,
java.lang.Class<F> fieldtype,
java.util.function.Function<T,F> getter,
java.util.function.BiConsumer<T,F> setter)
根据Class、字段名、字段类型、getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldname,
java.lang.Class<F> fieldtype,
java.util.function.Function<T,F> getter,
java.util.function.BiConsumer<T,F> setter,
java.lang.Object attach)
根据Class、字段名、字段类型、getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldalias,
java.lang.Class<F> fieldtype,
java.lang.Object attach)
根据Class、字段别名、字段类型生成虚构的 Attribute 对象,get、set方法为空方法。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldname,
java.lang.Class<F> fieldtype,
java.lang.reflect.Type fieldGenericType,
java.util.function.Function<T,F> getter,
java.util.function.BiConsumer<T,F> setter)
根据Class、字段名、字段类型、getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldname,
java.lang.Class<F> fieldtype,
java.lang.reflect.Type fieldGenericType,
java.util.function.Function<T,F> getter,
java.util.function.BiConsumer<T,F> setter,
java.lang.Object attach)
根据Class、字段名、字段类型、getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldalias,
java.lang.reflect.Field field)
根据一个Class、field别名和Field生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldalias,
java.lang.reflect.Field field,
java.lang.reflect.Method getter,
java.lang.reflect.Method setter)
根据Class、字段别名、Field、getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldalias,
java.lang.reflect.Field field,
java.lang.reflect.Method getter,
java.lang.reflect.Method setter,
java.lang.Object attach)
根据Class、字段别名、Field、getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldalias,
java.lang.reflect.Field field,
java.lang.Object attach)
根据一个Class、field别名和Field生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldalias,
java.lang.reflect.Method getter,
java.lang.reflect.Method setter)
根据Class、字段别名、getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldalias,
java.lang.reflect.Method getter,
java.lang.reflect.Method setter,
java.lang.Object attach)
根据Class、字段别名、getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.Class<T> clazz,
java.lang.String fieldname,
java.lang.Object attach)
根据一个Class和field真实名称生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.reflect.Field field)
根据一个Field生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.reflect.Field field,
java.lang.Object attach)
根据一个Field生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.reflect.Method getter,
java.lang.reflect.Method setter)
根据一个getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.reflect.Method getter,
java.lang.reflect.Method setter,
java.lang.Object attach)
根据一个getter和setter方法生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.String fieldalias,
java.lang.reflect.Field field)
根据一个Field和field的别名生成 Attribute 对象。
|
static <T,F> Attribute<T,F> |
create(java.lang.String fieldalias,
java.lang.reflect.Field field,
java.lang.Object attach)
根据一个Field和field的别名生成 Attribute 对象。
|
static <T> Attribute<T,?>[] |
createGetters(java.lang.Class<T> clazz)
根据Class生成getter方法对应的 Attribute 对象数组。
|
static <T> Attribute<T,?>[] |
createSetters(java.lang.Class<T> clazz)
根据Class生成setter方法对应的 Attribute 对象数组。
|
java.lang.Class<T> |
declaringClass()
返回字段依附的类名
|
java.lang.String |
field()
返回字段名
|
default java.lang.reflect.Type |
genericType()
返回字段的数据泛型
|
F |
get(T obj)
获取指定对象的该字段的值
|
void |
set(T obj,
F value)
给指定对象的该字段赋值
|
java.lang.Class<? extends F> |
type()
返回字段的数据类型
|
java.lang.Class<? extends F> type()
default java.lang.reflect.Type genericType()
java.lang.Class<T> declaringClass()
java.lang.String field()
default <E> E attach()
E
- 泛型static <T,F> Attribute<T,F> create(java.lang.reflect.Field field)
T
- 依附类的类型F
- 字段类型field
- 字段,如果该字段不存在则抛异常static <T,F> Attribute<T,F> create(java.lang.reflect.Field field, java.lang.Object attach)
T
- 依附类的类型F
- 字段类型field
- 字段,如果该字段不存在则抛异常attach
- 附加对象static <T,F> Attribute<T,F> create(java.lang.String fieldalias, java.lang.reflect.Field field)
T
- 依附类的类型F
- 字段类型fieldalias
- 别名field
- 字段,如果该字段不存在则抛异常static <T,F> Attribute<T,F> create(java.lang.String fieldalias, java.lang.reflect.Field field, java.lang.Object attach)
T
- 依附类的类型F
- 字段类型fieldalias
- 别名field
- 字段,如果该字段不存在则抛异常attach
- 附加对象static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldname)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldname
- 字段名,如果该字段不存在则抛异常static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldname, java.lang.Object attach)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldname
- 字段名,如果该字段不存在则抛异常attach
- 附加对象static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.reflect.Field field)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类field
- 字段,如果该字段不存在则抛异常static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.reflect.Field field, java.lang.Object attach)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类field
- 字段,如果该字段不存在则抛异常attach
- 附加对象static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldalias, java.lang.reflect.Field field)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldalias
- 字段别名field
- 字段,如果该字段不存在则抛异常static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldalias, java.lang.reflect.Field field, java.lang.Object attach)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldalias
- 字段别名field
- 字段,如果该字段不存在则抛异常attach
- 附加对象static <T,F> Attribute<T,F> create(java.lang.reflect.Method getter, java.lang.reflect.Method setter)
T
- 依附类的类型F
- 字段类型getter
- getter方法setter
- setter方法static <T,F> Attribute<T,F> create(java.lang.reflect.Method getter, java.lang.reflect.Method setter, java.lang.Object attach)
T
- 依附类的类型F
- 字段类型getter
- getter方法setter
- setter方法attach
- 附加对象static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.reflect.Method getter, java.lang.reflect.Method setter)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类getter
- getter方法setter
- setter方法static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.reflect.Method getter, java.lang.reflect.Method setter, java.lang.Object attach)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类getter
- getter方法setter
- setter方法attach
- 附加对象static <T> Attribute<T,?>[] create(java.lang.Class<T> clazz)
T
- 依附类的类型clazz
- 指定依附的类static <T> Attribute<T,?>[] createGetters(java.lang.Class<T> clazz)
T
- 依附类的类型clazz
- 指定依附的类static <T> Attribute<T,?>[] createSetters(java.lang.Class<T> clazz)
T
- 依附类的类型clazz
- 指定依附的类static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldalias, java.lang.reflect.Method getter, java.lang.reflect.Method setter)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldalias
- 字段别名getter
- getter方法setter
- setter方法static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldalias, java.lang.reflect.Method getter, java.lang.reflect.Method setter, java.lang.Object attach)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldalias
- 字段别名getter
- getter方法setter
- setter方法attach
- 附加对象static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldalias, java.lang.reflect.Field field, java.lang.reflect.Method getter, java.lang.reflect.Method setter)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldalias
- 字段别名field
- 字段getter
- getter方法setter
- setter方法static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldalias, java.lang.reflect.Field field, java.lang.reflect.Method getter, java.lang.reflect.Method setter, java.lang.Object attach)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldalias
- 字段别名field
- 字段getter
- getter方法setter
- setter方法attach
- 附加对象static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldalias, java.lang.Class<F> fieldtype)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldalias
- 字段别名fieldtype
- 字段的类static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldalias, java.lang.Class<F> fieldtype, java.lang.Object attach)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldalias
- 字段别名fieldtype
- 字段的类attach
- 附加对象static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldalias, java.lang.Class<F> fieldtype, java.lang.reflect.Field field, java.lang.reflect.Method getter, java.lang.reflect.Method setter)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldalias
- 字段别名fieldtype
- 字段类型field
- 字段getter
- getter方法setter
- setter方法static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldalias, java.lang.Class<F> fieldtype, java.lang.reflect.Field field, java.lang.reflect.Method getter, java.lang.reflect.Method setter, java.lang.Object attach)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldalias
- 字段别名fieldtype
- 字段类型field
- 字段getter
- getter方法setter
- setter方法attach
- 附加对象static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldname, java.lang.Class<F> fieldtype, java.util.function.Function<T,F> getter, java.util.function.BiConsumer<T,F> setter)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldname
- 字段名fieldtype
- 字段类型getter
- getter方法setter
- setter方法static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldname, java.lang.Class<F> fieldtype, java.util.function.Function<T,F> getter, java.util.function.BiConsumer<T,F> setter, java.lang.Object attach)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldname
- 字段名fieldtype
- 字段类型getter
- getter方法setter
- setter方法attach
- 附加对象static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldname, java.lang.Class<F> fieldtype, java.lang.reflect.Type fieldGenericType, java.util.function.Function<T,F> getter, java.util.function.BiConsumer<T,F> setter)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldname
- 字段名fieldtype
- 字段类型fieldGenericType
- 字段泛型getter
- getter方法setter
- setter方法static <T,F> Attribute<T,F> create(java.lang.Class<T> clazz, java.lang.String fieldname, java.lang.Class<F> fieldtype, java.lang.reflect.Type fieldGenericType, java.util.function.Function<T,F> getter, java.util.function.BiConsumer<T,F> setter, java.lang.Object attach)
T
- 依附类的类型F
- 字段类型clazz
- 指定依附的类fieldname
- 字段名fieldtype
- 字段类型fieldGenericType
- 字段泛型getter
- getter方法setter
- setter方法attach
- 附加对象