mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-06 18:55:35 +08:00
Added classOf inline function in ReflectionFactory
This commit is contained in:
@@ -81,7 +81,49 @@ classOf(name = "com.example.demo.DemoClass")
|
|||||||
> 示例如下
|
> 示例如下
|
||||||
|
|
||||||
```kotlin
|
```kotlin
|
||||||
classOf(name = "com.example.demo.DemoClass", classLoader)
|
val customClassLoader: ClassLoader? = ... // 假设这个就是你的 ClassLoader
|
||||||
|
classOf(name = "com.example.demo.DemoClass", customClassLoader)
|
||||||
|
```
|
||||||
|
|
||||||
|
### classOf [method]
|
||||||
|
|
||||||
|
```kotlin
|
||||||
|
inline fun <reified T> classOf(loader: ClassLoader?): Class<*>
|
||||||
|
```
|
||||||
|
|
||||||
|
**变更记录**
|
||||||
|
|
||||||
|
`v1.0.93` `新增`
|
||||||
|
|
||||||
|
**功能描述**
|
||||||
|
|
||||||
|
> 通过 `T` 得到其 `Class` 实例并转换为实体类。
|
||||||
|
|
||||||
|
**功能示例**
|
||||||
|
|
||||||
|
我们要获取一个 `Class` 在 `Kotlin` 下不通过反射时应该这样做。
|
||||||
|
|
||||||
|
> 示例如下
|
||||||
|
>
|
||||||
|
```kotlin
|
||||||
|
DemoClass::class.java
|
||||||
|
```
|
||||||
|
|
||||||
|
现在,你可以直接 `cast` 一个实例并获取它的 `Class` 对象,必须在当前 `ClassLoader` 下存在。
|
||||||
|
|
||||||
|
> 示例如下
|
||||||
|
|
||||||
|
```kotlin
|
||||||
|
classOf<DemoClass>()
|
||||||
|
```
|
||||||
|
|
||||||
|
若目标存在的 `Class` 为 `stub`,通过这种方式,你还可以自定义 `Class` 所在的 `ClassLoader`。
|
||||||
|
|
||||||
|
> 示例如下
|
||||||
|
|
||||||
|
```kotlin
|
||||||
|
val customClassLoader: ClassLoader? = ... // 假设这个就是你的 ClassLoader
|
||||||
|
classOf<DemoClass>(customClassLoader)
|
||||||
```
|
```
|
||||||
|
|
||||||
### hasClass [method]
|
### hasClass [method]
|
||||||
|
@@ -71,6 +71,14 @@ fun classOf(name: String, loader: ClassLoader? = null): Class<*> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过 [T] 得到其 [Class] 实例并转换为实体类
|
||||||
|
* @param loader [Class] 所在的 [ClassLoader] - 默认空 - 可不填
|
||||||
|
* @return [Class]
|
||||||
|
* @throws NoClassDefFoundError 如果找不到 [Class] 或设置了错误的 [ClassLoader]
|
||||||
|
*/
|
||||||
|
inline fun <reified T> classOf(loader: ClassLoader? = null) = classOf(T::class.java.name, loader)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 通过字符串查找类是否存在
|
* 通过字符串查找类是否存在
|
||||||
* @param loader [Class] 所在的 [ClassLoader] - 不填使用默认 [ClassLoader]
|
* @param loader [Class] 所在的 [ClassLoader] - 不填使用默认 [ClassLoader]
|
||||||
|
Reference in New Issue
Block a user