Modify add "isAccessible" param in allMethods, allConstructors, allFields function in ReflectionFactory

This commit is contained in:
2022-12-30 21:27:01 +08:00
parent 903f55db06
commit 5ba8cab9f9
3 changed files with 39 additions and 12 deletions

View File

@@ -903,7 +903,7 @@ inline fun <T> Class<*>.buildOf(vararg param: Any?, initiate: ConstructorConditi
## Class.allMethods <span class="symbol">- ext-method</span>
```kotlin:no-line-numbers
inline fun Class<*>.allMethods(result: (index: Int, method: Method) -> Unit)
inline fun Class<*>.allMethods(isAccessible: Boolean, result: (index: Int, method: Method) -> Unit)
```
**Change Records**
@@ -914,6 +914,10 @@ inline fun Class<*>.allMethods(result: (index: Int, method: Method) -> Unit)
将方法体进行 inline
`v1.1.5` `modified`
新增 `isAccessible` 参数
**Function Illustrate**
> 遍历当前类中的所有方法。
@@ -921,7 +925,7 @@ inline fun Class<*>.allMethods(result: (index: Int, method: Method) -> Unit)
## Class.allConstructors <span class="symbol">- ext-method</span>
```kotlin:no-line-numbers
inline fun Class<*>.allConstructors(result: (index: Int, constructor: Constructor<*>) -> Unit)
inline fun Class<*>.allConstructors(isAccessible: Boolean, result: (index: Int, constructor: Constructor<*>) -> Unit)
```
**Change Records**
@@ -932,6 +936,10 @@ inline fun Class<*>.allConstructors(result: (index: Int, constructor: Constructo
将方法体进行 inline
`v1.1.5` `modified`
新增 `isAccessible` 参数
**Function Illustrate**
> 遍历当前类中的所有构造方法。
@@ -939,7 +947,7 @@ inline fun Class<*>.allConstructors(result: (index: Int, constructor: Constructo
## Class.allFields <span class="symbol">- ext-method</span>
```kotlin:no-line-numbers
inline fun Class<*>.allFields(result: (index: Int, field: Field) -> Unit)
inline fun Class<*>.allFields(isAccessible: Boolean, result: (index: Int, field: Field) -> Unit)
```
**Change Records**
@@ -950,6 +958,10 @@ inline fun Class<*>.allFields(result: (index: Int, field: Field) -> Unit)
将方法体进行 inline
`v1.1.5` `modified`
新增 `isAccessible` 参数
**Function Illustrate**
> 遍历当前类中的所有变量。

View File

@@ -895,7 +895,7 @@ inline fun <T> Class<*>.buildOf(vararg param: Any?, initiate: ConstructorConditi
## Class.allMethods <span class="symbol">- ext-method</span>
```kotlin:no-line-numbers
inline fun Class<*>.allMethods(result: (index: Int, method: Method) -> Unit)
inline fun Class<*>.allMethods(isAccessible: Boolean, result: (index: Int, method: Method) -> Unit)
```
**变更记录**
@@ -906,6 +906,10 @@ inline fun Class<*>.allMethods(result: (index: Int, method: Method) -> Unit)
将方法体进行 inline
`v1.1.5` `修改`
新增 `isAccessible` 参数
**功能描述**
> 遍历当前类中的所有方法。
@@ -913,7 +917,7 @@ inline fun Class<*>.allMethods(result: (index: Int, method: Method) -> Unit)
## Class.allConstructors <span class="symbol">- ext-method</span>
```kotlin:no-line-numbers
inline fun Class<*>.allConstructors(result: (index: Int, constructor: Constructor<*>) -> Unit)
inline fun Class<*>.allConstructors(isAccessible: Boolean, result: (index: Int, constructor: Constructor<*>) -> Unit)
```
**变更记录**
@@ -924,6 +928,10 @@ inline fun Class<*>.allConstructors(result: (index: Int, constructor: Constructo
将方法体进行 inline
`v1.1.5` `修改`
新增 `isAccessible` 参数
**功能描述**
> 遍历当前类中的所有构造方法。
@@ -931,7 +939,7 @@ inline fun Class<*>.allConstructors(result: (index: Int, constructor: Constructo
## Class.allFields <span class="symbol">- ext-method</span>
```kotlin:no-line-numbers
inline fun Class<*>.allFields(result: (index: Int, field: Field) -> Unit)
inline fun Class<*>.allFields(isAccessible: Boolean, result: (index: Int, field: Field) -> Unit)
```
**变更记录**
@@ -942,6 +950,10 @@ inline fun Class<*>.allFields(result: (index: Int, field: Field) -> Unit)
将方法体进行 inline
`v1.1.5` `修改`
新增 `isAccessible` 参数
**功能描述**
> 遍历当前类中的所有变量。

View File

@@ -386,24 +386,27 @@ inline fun <T> Class<*>.buildOf(vararg param: Any?, initiate: ConstructorConditi
/**
* 遍历当前类中的所有方法
* @param isAccessible 是否强制设置成员为可访问类型 - 默认是
* @param result 回调 - ([Int] 下标,[Method] 实例)
*/
inline fun Class<*>.allMethods(result: (index: Int, method: Method) -> Unit) =
declaredMethods.forEachIndexed { p, it -> result(p, it.apply { isAccessible = true }) }
inline fun Class<*>.allMethods(isAccessible: Boolean = true, result: (index: Int, method: Method) -> Unit) =
declaredMethods.forEachIndexed { p, it -> result(p, it.also { e -> e.isAccessible = isAccessible }) }
/**
* 遍历当前类中的所有构造方法
* @param isAccessible 是否强制设置成员为可访问类型 - 默认是
* @param result 回调 - ([Int] 下标,[Constructor] 实例)
*/
inline fun Class<*>.allConstructors(result: (index: Int, constructor: Constructor<*>) -> Unit) =
declaredConstructors.forEachIndexed { p, it -> result(p, it.apply { isAccessible = true }) }
inline fun Class<*>.allConstructors(isAccessible: Boolean = true, result: (index: Int, constructor: Constructor<*>) -> Unit) =
declaredConstructors.forEachIndexed { p, it -> result(p, it.also { e -> e.isAccessible = isAccessible }) }
/**
* 遍历当前类中的所有变量
* @param isAccessible 是否强制设置成员为可访问类型 - 默认是
* @param result 回调 - ([Int] 下标,[Field] 实例)
*/
inline fun Class<*>.allFields(result: (index: Int, field: Field) -> Unit) =
declaredFields.forEachIndexed { p, it -> result(p, it.apply { isAccessible = true }) }
inline fun Class<*>.allFields(isAccessible: Boolean = true, result: (index: Int, field: Field) -> Unit) =
declaredFields.forEachIndexed { p, it -> result(p, it.also { e -> e.isAccessible = isAccessible }) }
/**
* 检查内部类调用