mirror of
https://github.com/HighCapable/YukiHookAPI.git
synced 2025-09-04 09:45:19 +08:00
Modify move classOf to toClass function in ReflectionFactory
This commit is contained in:
@@ -551,7 +551,7 @@ fun findClass(vararg name: String, loader: ClassLoader?): VariousClass
|
||||
|
||||
> 通过完整包名+名称查找需要被 Hook 的 `Class`。
|
||||
|
||||
!> 使用此方法会得到一个 `HookClass` 仅用于 Hook,若想查找 `Class` 请使用 `classOf`、`toAppClass` 功能。
|
||||
!> 使用此方法会得到一个 `HookClass` 仅用于 Hook,若想查找 `Class` 请使用 `toClass`、`toAppClass` 功能。
|
||||
|
||||
**功能示例**
|
||||
|
||||
|
@@ -108,28 +108,38 @@ val Class<*>.hasExtends: Boolean
|
||||
|
||||
> 当前 `Class` 是否有继承关系,父类是 `Any` 将被认为没有继承关系。
|
||||
|
||||
### classOf *- method*
|
||||
|
||||
```kotlin
|
||||
fun classOf(name: String, loader: ClassLoader?): Class<*>
|
||||
```
|
||||
### ~~classOf *- method*~~ <!-- {docsify-ignore} -->
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0` `添加`
|
||||
|
||||
`v1.0.93` `移除`
|
||||
|
||||
请转到 `toClass(...)` 方法
|
||||
|
||||
### String.toClass *- ext-method*
|
||||
|
||||
```kotlin
|
||||
fun String.toClass(loader: ClassLoader?): Class<*>
|
||||
```
|
||||
|
||||
**变更记录**
|
||||
|
||||
`v1.0.93` `新增`
|
||||
|
||||
**功能描述**
|
||||
|
||||
> 通过字符串使用指定的 `ClassLoader` 转换为实体类。
|
||||
> 通过字符串类名转换为 `loader` 中的实体类。
|
||||
|
||||
**功能示例**
|
||||
|
||||
你可以直接填写你要查找的目标 `Class`,必须在当前 `ClassLoader` 下存在。
|
||||
你可以直接填写你要查找的目标 `Class`,必须在默认 `ClassLoader` 下存在。
|
||||
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
classOf(name = "com.example.demo.DemoClass")
|
||||
"com.example.demo.DemoClass".toClass()
|
||||
```
|
||||
|
||||
你还可以自定义 `Class` 所在的 `ClassLoader`。
|
||||
@@ -138,7 +148,7 @@ classOf(name = "com.example.demo.DemoClass")
|
||||
|
||||
```kotlin
|
||||
val customClassLoader: ClassLoader? = ... // 假设这个就是你的 ClassLoader
|
||||
classOf(name = "com.example.demo.DemoClass", customClassLoader)
|
||||
"com.example.demo.DemoClass".toClass(customClassLoader)
|
||||
```
|
||||
|
||||
### classOf *- method*
|
||||
|
@@ -660,7 +660,7 @@ Test(true).doTask("task_name")
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
classOf("com.demo.Test")
|
||||
"com.demo.Test".toClass()
|
||||
.getDeclaredConstructor(Boolean::class.java)
|
||||
.apply { isAccessible = true }
|
||||
.newInstance(true)
|
||||
@@ -679,7 +679,7 @@ classOf("com.demo.Test")
|
||||
> 示例如下
|
||||
|
||||
```kotlin
|
||||
classOf("com.demo.Test").buildOfAny(true) { param(BooleanType) }?.current {
|
||||
"com.demo.Test".toClass().buildOfAny(true) { param(BooleanType) }?.current {
|
||||
method {
|
||||
name = "doTask"
|
||||
param(StringType)
|
||||
@@ -916,7 +916,7 @@ public class BTest {
|
||||
|
||||
```kotlin
|
||||
// 首先查询到这个 Class
|
||||
val currentClass = if("com.demo.ATest".hasClass) classOf("com.demo.ATest") else classOf("com.demo.BTest")
|
||||
val currentClass = if("com.demo.ATest".hasClass()) "com.demo.ATest".toClass() else "com.demo.BTest".toClass()
|
||||
// 然后再查询这个方法并调用
|
||||
currentClass.method {
|
||||
name = "doTask"
|
||||
|
Reference in New Issue
Block a user