Notice
The English translation of this page has not been completed, you are welcome to contribute translations to us.
You can use the Chrome Translation Plugin to translate entire pages for reference.
- class
FieldFinderclass FieldFinder internal constructor(override val classSet: Class<*>?) : MemberBaseFinder
Change Records
v1.0.0
first
Function Illustrate
Field
查找类。
可通过指定类型查找指定 Field
或一组 Field
。
- field
namevar name: String
Change Records
v1.0.0
first
Function Illustrate
设置
Field
名称。
Pay Attention
若不填写名称则必须存在一个其它条件。
- field
typevar type: Any?
Change Records
v1.0.0
first
Function Illustrate
设置
Field
类型。
可不填写类型。
- method
modifiersfun modifiers(conditions: ModifierConditions): IndexTypeCondition
Change Records
v1.0.0
first
Function Illustrate
设置
Field
标识符筛选条件。
可不设置筛选条件。
Pay Attention
存在多个 IndexTypeCondition 时除了 order 只会生效最后一个。
- method
orderfun order(): IndexTypeCondition
Change Records
v1.0.0
first
Function Illustrate
顺序筛选字节码的下标。
- method
namefun name(value: String): IndexTypeCondition
Change Records
v1.0.0
first
Function Illustrate
设置
Field
名称。
Pay Attention
若不填写名称则必须存在一个其它条件。
存在多个 IndexTypeCondition 时除了 order 只会生效最后一个。
- method
namefun name(conditions: NameConditions): IndexTypeCondition
Change Records
v1.0.0
first
Function Illustrate
设置
Field
名称条件。
Pay Attention
若不填写名称则必须存在一个其它条件。
存在多个 IndexTypeCondition 时除了 order 只会生效最后一个。
- method
typefun type(value: Any): IndexTypeCondition
Change Records
v1.0.0
first
Function Illustrate
设置
Field
类型。
可不填写类型。
Pay Attention
存在多个 IndexTypeCondition 时除了 order 只会生效最后一个。
- method
typefun type(conditions: ObjectConditions): IndexTypeCondition
Change Records
v1.0.0
first
Function Illustrate
设置
Field
类型条件。
可不填写类型。
Pay Attention
存在多个 IndexTypeCondition 时除了 order 只会生效最后一个。
- method
superClassfun superClass(isOnlySuperClass: Boolean)
Change Records
v1.0.0
first
Function Illustrate
设置在
classSet
的所有父类中查找当前Field
。
Notice
若当前 classSet 的父类较多可能会耗时,API 会自动循环到父类继承是 Any 前的最后一个类。
- class
RemedyPlaninner class RemedyPlan internal constructor()
Change Records
v1.0.0
first
Function Illustrate
Field
重查找实现类,可累计失败次数直到查找成功。
- method
fieldinline fun field(initiate: FieldConditions): Result
Change Records
v1.0.0
first
Function Illustrate
创建需要重新查找的
Field
。
你可以添加多个备选 Field
,直到成功为止,若最后依然失败,将停止查找并输出错误日志。
- class
Resultinner class Result internal constructor()
Change Records
v1.0.0
first
Function Illustrate
RemedyPlan
结果实现类。
- method
onFindfun onFind(initiate: MutableList<Field>.() -> Unit)
Change Records
v1.0.0
first
v1.0.3
modified
initiate
类型由 HashSet
修改为 MutableList
Function Illustrate
当在
RemedyPlan
中找到结果时。
Function Example
你可以方便地对重查找的 Field
实现 onFind
方法。
The following example
field {
// Your code here.
}.onFind {
// Your code here.
}
- class
Resultinner class Result internal constructor(internal val isNoSuch: Boolean, internal val throwable: Throwable?) : BaseResult
Change Records
v1.0.0
first
Function Illustrate
Field
查找结果实现类。
- method
resultinline fun result(initiate: Result.() -> Unit): Result
Change Records
v1.0.0
first
Function Illustrate
创建监听结果事件方法体。
Function Example
你可以使用 lambda 形式创建 Result
类。
The following example
field {
// Your code here.
}.result {
get(instance).set("something")
get(instance).string()
get(instance).cast<CustomClass>()
get().boolean()
all(instance)
give()
giveAll()
onNoSuchField {}
}
- method
getfun get(instance: Any?): Instance
Change Records
v1.0.0
first
Function Illustrate
获得
Field
实例处理类。
若有多个 Field
结果只会返回第一个。
Function Example
你可以轻松地得到 Field
的实例以及使用它进行设置实例。
The following example
field {
// Your code here.
}.get(instance).set("something")
如果你取到的是静态 Field
,可以不需要设置实例。
The following example
field {
// Your code here.
}.get().set("something")
- method
allfun all(instance: Any?): MutableList<Instance>
Change Records
v1.0.0
first
v1.0.3
modified
返回值类型由 ArrayList
修改为 MutableList
Function Illustrate
获得
Field
实例处理类数组。
返回全部查找条件匹配的多个 Field
实例结果。
Function Example
你可以通过此方法来获得当前条件结果中匹配的全部 Field
,其 Field
所在实例用法与 get
相同。
The following example
field {
// Your code here.
}.all(instance).forEach { instance ->
instance.self
}
- method
givefun give(): Field?
Change Records
v1.0.0
first
Function Illustrate
得到
Field
本身。
若有多个 Field 结果只会返回第一个。
在查找条件找不到任何结果的时候将返回 null
。
- method
giveAllfun giveAll(): MutableList<Field>
Change Records
v1.0.0
first
v1.0.3
modified
返回值类型由 HashSet
修改为 MutableList
Function Illustrate
得到
Field
本身数组。
返回全部查找条件匹配的多个 Field
实例。
在查找条件找不到任何结果的时候将返回空的 MutableList
。
- method
waitfun wait(instance: Any?, initiate: Instance.() -> Unit)
Change Records
v1.0.0
first
Function Illustrate
获得
Field
实例处理类,配合RemedyPlan
使用。
若有多个 Field
结果只会返回第一个。
Pay Attention
若你设置了 remedys 必须使用此方法才能获得结果。
若你没有设置 remedys 此方法将不会被回调。
- method
waitAllfun waitAll(instance: Any?, initiate: MutableList<Instance>.() -> Unit)
Change Records
v1.0.0
first
v1.0.3
modified
initiate
类型由 ArrayList
修改为 MutableList
Function Illustrate
获得
Field
实例处理类数组,配合RemedyPlan
使用。
返回全部查找条件匹配的多个 Field
实例结果。
Pay Attention
若你设置了 remedys 必须使用此方法才能获得结果。
若你没有设置 remedys 此方法将不会被回调。
- method
remedysinline fun remedys(initiate: RemedyPlan.() -> Unit): Result
Change Records
v1.0.0
first
Function Illustrate
创建
Field
重查找功能。
Function Example
当你遇到一种 Field
可能存在不同形式的存在时,可以使用 RemedyPlan
重新查找它,而没有必要使用 onNoSuchField
捕获异常二次查找 Field
。
若第一次查找失败了,你还可以在这里继续添加此方法体直到成功为止。
The following example
field {
// Your code here.
}.remedys {
field {
// Your code here.
}
field {
// Your code here.
}
}
- method
onNoSuchFieldfun onNoSuchField(result: (Throwable) -> Unit): Result
Change Records
v1.0.0
first
Function Illustrate
监听找不到
Field
时。
- method
ignoredfun ignored(): Result
Change Records
v1.0.0
first
Function Illustrate
忽略异常并停止打印任何错误日志。
Notice
此时若要监听异常结果,你需要手动实现 onNoSuchField 方法。
- class
Instanceinner class Instance internal constructor(private val instance: Any?, private val field: Field?)
Change Records
v1.0.0
first
Function Illustrate
Field
实例变量处理类。
- method
currentfun current(ignored: Boolean): CurrentClass?
inline fun current(ignored: Boolean, initiate: CurrentClass.() -> Unit): Any?
Change Records
v1.0.0
first
Function Illustrate
获得当前
Field
自身self
实例的类操作对象CurrentClass
。
- method
castfun <T> cast(): T?
Change Records
v1.0.0
first
Function Illustrate
得到当前
Field
实例。
- method
bytefun byte(): Byte?
Change Records
v1.0.0
first
Function Illustrate
得到当前
Field
Byte 实例。
- method
intfun int(): Int
Change Records
v1.0.0
first
Function Illustrate
得到当前
Field
Int 实例。
- method
longfun long(): Long
Change Records
v1.0.0
first
Function Illustrate
得到当前
Field
Long 实例。
- method
shortfun short(): Short
Change Records
v1.0.0
first
Function Illustrate
得到当前
Field
Short 实例。
- method
doublefun double(): Double
Change Records
v1.0.0
first
Function Illustrate
得到当前
Field
Double 实例。
- method
floatfun float(): Float
Change Records
v1.0.0
first
Function Illustrate
得到当前
Field
Float 实例。
- method
stringfun string(): String
Change Records
v1.0.0
first
Function Illustrate
得到当前
Field
String 实例。
- method
charfun char(): Char
Change Records
v1.0.0
first
Function Illustrate
得到当前
Field
Char 实例。
- method
booleanfun boolean(): Boolean
Change Records
v1.0.0
first
Function Illustrate
得到当前
Field
Boolean 实例。
- method
anyfun any(): Any?
Change Records
v1.0.0
first
Function Illustrate
得到当前
Field
Any 实例。
- method
arrayinline fun <reified T> array(): Array<T>
Change Records
v1.0.0
first
Function Illustrate
得到当前
Field
Array 实例。
- method
listinline fun <reified T> list(): List<T>
Change Records
v1.0.0
first
Function Illustrate
得到当前
Field
List 实例。
- method
setfun set(any: Any?)
Change Records
v1.0.0
first
Function Illustrate
设置当前
Field
实例。
- method
setTruefun setTrue()
Change Records
v1.0.0
first
Function Illustrate
设置当前
Field
实例为true
。
Pay Attention
请确保实例对象类型为 Boolean。
- method
setFalsefun setFalse()
Change Records
v1.0.0
first
Function Illustrate
设置当前
Field
实例为false
。
Pay Attention
请确保实例对象类型为 Boolean。
- method
setNullfun setNull()
Change Records
v1.0.0
first
Function Illustrate
设置当前
Field
实例为null
。