| 程序包 | 说明 |
|---|---|
| com.jfinal.template | |
| com.jfinal.template.expr.ast |
| 限定符和类型 | 方法和说明 |
|---|---|
static void |
Engine.addFieldGetter(int index,
FieldGetter fieldGetter)
添加 FieldGetter 实现类到指定的位置
系统当前默认 FieldGetter 实现类及其位置如下:
GetterMethodFieldGetter ---> 调用 getter 方法取值
RealFieldGetter ---> 直接获取 public 型的 object.field 值
ModelFieldGetter ---> 调用 Model.get(String) 方法取值
RecordFieldGetter ---> 调用 Record.get(String) 方法取值
MapFieldGetter ---> 调用 Map.get(String) 方法取值
ArrayLengthGetter ---> 获取数组长度
根据以上次序,如果要插入 IsMethodFieldGetter 到 GetterMethodFieldGetter
之后的代码如下:
Engine.addFieldGetter(1, new IsMethodFieldGetter());
注:IsMethodFieldGetter 系统已经提供,只是默认没有启用。
|
static void |
Engine.addFieldGetterToFirst(FieldGetter fieldGetter) |
static void |
Engine.addFieldGetterToLast(FieldGetter fieldGetter) |
| 限定符和类型 | 方法和说明 |
|---|---|
static void |
Engine.removeFieldGetter(Class<? extends FieldGetter> fieldGetterClass) |
| 限定符和类型 | 类和说明 |
|---|---|
class |
FastFieldGetter
使用 jfinal proxy 机制消除 java.lang.reflect.Method.invoke(...)
|
static class |
FieldGetters.ArrayLengthGetter
ArrayLengthGetter
获取数组长度: array.length
|
static class |
FieldGetters.GetterMethodFieldGetter
GetterMethodFieldGetter
使用 getter 方法获取 target.field 表达式的值
|
static class |
FieldGetters.IsMethodFieldGetter
IsMethodFieldGetter
使用 target.isXxx() 方法获取值,默认不启用该功能,用户可以通过如下方式启用:
Engine.addLastFieldGetter(new FieldGetters.IsMethodFieldGetter());
|
static class |
FieldGetters.MapFieldGetter
MapFieldGetter
使用 Map.get(Object) 获取值
|
static class |
FieldGetters.NullFieldGetter
NullFieldGetter
用于消除 FieldKit.getFieldGetter(...)
|
static class |
FieldGetters.RealFieldGetter
RealFieldGetter
使用 target.field 获取值
|
| 限定符和类型 | 方法和说明 |
|---|---|
static FieldGetter |
FieldKit.getFieldGetter(Object key,
Class<?> targetClass,
String fieldName) |
FieldGetter |
FieldGetters.NullFieldGetter.takeOver(Class<?> targetClass,
String fieldName) |
FieldGetter |
FieldGetters.GetterMethodFieldGetter.takeOver(Class<?> targetClass,
String fieldName) |
FieldGetter |
FieldGetters.IsMethodFieldGetter.takeOver(Class<?> targetClass,
String fieldName) |
FieldGetter |
FieldGetters.MapFieldGetter.takeOver(Class<?> targetClass,
String fieldName) |
FieldGetter |
FieldGetters.RealFieldGetter.takeOver(Class<?> targetClass,
String fieldName) |
FieldGetter |
FieldGetters.ArrayLengthGetter.takeOver(Class<?> targetClass,
String fieldName) |
abstract FieldGetter |
FieldGetter.takeOver(Class<?> targetClass,
String fieldName)
接管 target.fieldName 表达式,如果可以接管则返回接管对象,否则返回 null
|
FieldGetter |
FastFieldGetter.takeOver(Class<?> targetClass,
String fieldName) |
| 限定符和类型 | 方法和说明 |
|---|---|
static void |
FieldKit.addFieldGetter(int index,
FieldGetter fieldGetter) |
static void |
FieldKit.addFieldGetterToFirst(FieldGetter fieldGetter) |
static void |
FieldKit.addFieldGetterToLast(FieldGetter fieldGetter) |
| 限定符和类型 | 方法和说明 |
|---|---|
static boolean |
FieldKit.contains(Class<? extends FieldGetter> fieldGetterClass)
判断是否包含某个 FieldGetter
|
static void |
FieldKit.removeFieldGetter(Class<? extends FieldGetter> fieldGetterClass) |
Copyright © 2024. All rights reserved.