Modify add toClass, toClassOrNull generics method in ReflectionFactory, PackageParam

This commit is contained in:
2022-12-29 20:38:42 +08:00
parent 79b9c98a04
commit eb5abb3403
7 changed files with 145 additions and 1 deletions

View File

@@ -253,10 +253,18 @@ val Class<*>.hasExtends: Boolean
fun String.toClass(loader: ClassLoader?): Class<*>
```
```kotlin:no-line-numbers
inline fun <reified T> String.toClass(loader: ClassLoader?): Class<T>
```
**Change Records**
`v1.1.0` `added`
`v1.1.5` `modified`
新增泛型返回值 `Class<T>` 方法
**Function Illustrate**
> 通过字符串类名转换为 `loader` 中的实体类。
@@ -280,16 +288,33 @@ val customClassLoader: ClassLoader? = ... // 假设这个就是你的 ClassLoade
"com.example.demo.DemoClass".toClass(customClassLoader)
```
你还可以指定 `Class` 的目标类型。
> The following example
```kotlin
// 指定的 DemoClass 必须存在或为可访问的 stub
"com.example.demo.DemoClass".toClass<DemoClass>()
```
## String.toClassOrNull <span class="symbol">- ext-method</span>
```kotlin:no-line-numbers
fun String.toClassOrNull(loader: ClassLoader?): Class<*>?
```
```kotlin:no-line-numbers
inline fun <reified T> String.toClassOrNull(loader: ClassLoader?): Class<T>?
```
**Change Records**
`v1.1.0` `added`
`v1.1.5` `modified`
新增泛型返回值 `Class<T>` 方法
**Function Illustrate**
> 通过字符串类名转换为 `loader` 中的实体类。

View File

@@ -635,6 +635,10 @@ inline fun searchClass(name: String, async: Boolean, initiate: ClassConditions):
fun String.toClass(loader: ClassLoader?): Class<*>
```
```kotlin:no-line-numbers
inline fun <reified T> String.toClass(loader: ClassLoader?): Class<T>
```
```kotlin:no-line-numbers
fun VariousClass.toClass(loader: ClassLoader?): Class<*>
```
@@ -643,6 +647,10 @@ fun VariousClass.toClass(loader: ClassLoader?): Class<*>
`v1.1.0` `added`
`v1.1.5` `modified`
新增泛型返回值 `Class<T>` 方法
**Function Illustrate**
> 通过字符串类名、`VariousClass` 转换为 `loader` 中的实体类。
@@ -668,6 +676,15 @@ val customClassLoader: ClassLoader? = ... // 假设这个就是你的 ClassLoade
"com.example.demo.DemoClass".toClass(customClassLoader)
```
你还可以指定 `Class` 的目标类型。
> The following example
```kotlin
// 指定的 DemoClass 必须存在或为可访问的 stub
"com.example.demo.DemoClass".toClass<DemoClass>()
```
你还可以创建一个 `VariousClass`,并转换为实体类。
`VariousClass` 会枚举所有设置的 `Class` 并最终获得第一个存在的 `Class`。
@@ -693,6 +710,10 @@ VariousClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2").toCla
fun String.toClassOrNull(loader: ClassLoader?): Class<*>?
```
```kotlin:no-line-numbers
inline fun <reified T> String.toClassOrNull(loader: ClassLoader?): Class<T>?
```
```kotlin:no-line-numbers
fun VariousClass.toClassOrNull(loader: ClassLoader?): Class<*>?
```
@@ -701,6 +722,10 @@ fun VariousClass.toClassOrNull(loader: ClassLoader?): Class<*>?
`v1.1.0` `added`
`v1.1.5` `modified`
新增泛型返回值 `Class<T>` 方法
**Function Illustrate**
> 通过字符串类名、`VariousClass` 转换为 `loader` 中的实体类。

View File

@@ -245,10 +245,18 @@ val Class<*>.hasExtends: Boolean
fun String.toClass(loader: ClassLoader?): Class<*>
```
```kotlin:no-line-numbers
inline fun <reified T> String.toClass(loader: ClassLoader?): Class<T>
```
**变更记录**
`v1.1.0` `新增`
`v1.1.5` `修改`
新增泛型返回值 `Class<T>` 方法
**功能描述**
> 通过字符串类名转换为 `loader` 中的实体类。
@@ -272,16 +280,33 @@ val customClassLoader: ClassLoader? = ... // 假设这个就是你的 ClassLoade
"com.example.demo.DemoClass".toClass(customClassLoader)
```
你还可以指定 `Class` 的目标类型。
> 示例如下
```kotlin
// 指定的 DemoClass 必须存在或为可访问的 stub
"com.example.demo.DemoClass".toClass<DemoClass>()
```
## String.toClassOrNull <span class="symbol">- ext-method</span>
```kotlin:no-line-numbers
fun String.toClassOrNull(loader: ClassLoader?): Class<*>?
```
```kotlin:no-line-numbers
inline fun <reified T> String.toClassOrNull(loader: ClassLoader?): Class<T>?
```
**变更记录**
`v1.1.0` `新增`
`v1.1.5` `修改`
新增泛型返回值 `Class<T>` 方法
**功能描述**
> 通过字符串类名转换为 `loader` 中的实体类。

View File

@@ -627,6 +627,10 @@ inline fun searchClass(name: String, async: Boolean, initiate: ClassConditions):
fun String.toClass(loader: ClassLoader?): Class<*>
```
```kotlin:no-line-numbers
inline fun <reified T> String.toClass(loader: ClassLoader?): Class<T>
```
```kotlin:no-line-numbers
fun VariousClass.toClass(loader: ClassLoader?): Class<*>
```
@@ -635,6 +639,10 @@ fun VariousClass.toClass(loader: ClassLoader?): Class<*>
`v1.1.0` `新增`
`v1.1.5` `修改`
新增泛型返回值 `Class<T>` 方法
**功能描述**
> 通过字符串类名、`VariousClass` 转换为 `loader` 中的实体类。
@@ -660,6 +668,15 @@ val customClassLoader: ClassLoader? = ... // 假设这个就是你的 ClassLoade
"com.example.demo.DemoClass".toClass(customClassLoader)
```
你还可以指定 `Class` 的目标类型。
> 示例如下
```kotlin
// 指定的 DemoClass 必须存在或为可访问的 stub
"com.example.demo.DemoClass".toClass<DemoClass>()
```
你还可以创建一个 `VariousClass`,并转换为实体类。
`VariousClass` 会枚举所有设置的 `Class` 并最终获得第一个存在的 `Class`。
@@ -685,6 +702,10 @@ VariousClass("com.example.demo.DemoClass1", "com.example.demo.DemoClass2").toCla
fun String.toClassOrNull(loader: ClassLoader?): Class<*>?
```
```kotlin:no-line-numbers
inline fun <reified T> String.toClassOrNull(loader: ClassLoader?): Class<T>?
```
```kotlin:no-line-numbers
fun VariousClass.toClassOrNull(loader: ClassLoader?): Class<*>?
```
@@ -693,6 +714,10 @@ fun VariousClass.toClassOrNull(loader: ClassLoader?): Class<*>?
`v1.1.0` `新增`
`v1.1.5` `修改`
新增泛型返回值 `Class<T>` 方法
**功能描述**
> 通过字符串类名、`VariousClass` 转换为 `loader` 中的实体类。