import{_ as s,o as a,c as n,e as l}from"./app.3cb5b3a5.js";const o={},e=l(`

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.

ReflectionFactory - kt

Change Records

v1.0.0 first

Function Illustrate

\u8FD9\u662F\u81EA\u5B9A\u4E49 Member \u548C Class \u76F8\u5173\u529F\u80FD\u7684\u67E5\u627E\u5339\u914D\u4EE5\u53CA invoke \u7684\u5C01\u88C5\u7C7B\u3002

ClassLoader.listOfClasses - ext-method

fun ClassLoader.listOfClasses(): List<String>

Change Records

v1.0.0 first

Function Illustrate

\u5199\u51FA\u5F53\u524D ClassLoader \u4E0B\u6240\u6709 Class \u540D\u79F0\u6570\u7EC4\u3002

Notice

\u6B64\u65B9\u6CD5\u5728 Class \u6570\u91CF\u8FC7\u591A\u65F6\u4F1A\u975E\u5E38\u8017\u65F6\u3002

\u82E5\u8981\u6309\u6307\u5B9A\u89C4\u5219\u67E5\u627E\u4E00\u4E2A Class\uFF0C\u8BF7\u4F7F\u7528 ClassLoader.searchClass \u65B9\u6CD5\u3002

ClassLoader.searchClass - ext-method

inline fun ClassLoader.searchClass(context: Context?, name: String, async: Boolean, initiate: ClassConditions): DexClassFinder.Result

Change Records

v1.0.0 first

Function Illustrate

\u901A\u8FC7\u5F53\u524D ClassLoader \u6309\u6307\u5B9A\u6761\u4EF6\u67E5\u627E\u5E76\u5F97\u5230 Dex \u4E2D\u7684 Class\u3002

Pay Attention

\u6B64\u65B9\u6CD5\u5728 Class \u6570\u91CF\u8FC7\u591A\u53CA\u67E5\u627E\u6761\u4EF6\u590D\u6742\u65F6\u4F1A\u975E\u5E38\u8017\u65F6\u3002

\u5EFA\u8BAE\u542F\u7528 async \u6216\u8BBE\u7F6E name \u53C2\u6570\uFF0Cname \u53C2\u6570\u5C06\u5728\u5F53\u524D APP \u4E0D\u540C\u7248\u672C\u4E2D\u81EA\u52A8\u8FDB\u884C\u672C\u5730\u7F13\u5B58\u4EE5\u63D0\u5347\u6548\u7387\u3002

\u5982\u679C\u4F7F\u7528\u4E86 async \u6216 name \u53C2\u6570\uFF0C\u5219\u5FC5\u987B\u586B\u5199 context \u53C2\u6570\u3002

\u6B64\u529F\u80FD\u5C1A\u5728\u8BD5\u9A8C\u9636\u6BB5\uFF0C\u6027\u80FD\u4E0E\u7A33\u5B9A\u6027\u53EF\u80FD\u4ECD\u7136\u5B58\u5728\u95EE\u9898\uFF0C\u4F7F\u7528\u8FC7\u7A0B\u9047\u5230\u95EE\u9898\u8BF7\u5411\u6211\u4EEC\u62A5\u544A\u5E76\u5E2E\u52A9\u6211\u4EEC\u6539\u8FDB\u3002

Class.hasExtends - ext-field

val Class<*>.hasExtends: Boolean

Change Records

v1.0.0 first

Function Illustrate

\u5F53\u524D Class \u662F\u5426\u6709\u7EE7\u627F\u5173\u7CFB\uFF0C\u7236\u7C7B\u662F Any \u5C06\u88AB\u8BA4\u4E3A\u6CA1\u6709\u7EE7\u627F\u5173\u7CFB\u3002

Class?.extends - ext-method

infix fun Class<*>?.extends(other: Class<*>?): Boolean

Change Records

v1.0.0 first

Function Illustrate

\u5F53\u524D Class \u662F\u5426\u7EE7\u627F\u4E8E other\u3002

\u5982\u679C\u5F53\u524D Class \u5C31\u662F other \u4E5F\u4F1A\u8FD4\u56DE true\u3002

\u5982\u679C\u5F53\u524D Class \u4E3A null \u6216 other \u4E3A null \u4F1A\u8FD4\u56DE false\u3002

Function Example

\u4F60\u53EF\u4EE5\u4F7F\u7528\u6B64\u65B9\u6CD5\u6765\u5224\u65AD\u4E24\u4E2A Class \u662F\u5426\u5B58\u5728\u7EE7\u627F\u5173\u7CFB\u3002

The following example

// \u5047\u8BBE\u4E0B\u9762\u8FD9\u4E24\u4E2A Class \u5C31\u662F\u4F60\u9700\u8981\u5224\u65AD\u7684 Class
val classA: Class<*>?
val classB: Class<*>?
// \u5224\u65AD A \u662F\u5426\u7EE7\u627F\u4E8E B
if (classA extends classB) {
    // Your code here.
}

Class?.notExtends - ext-method

infix fun Class<*>?.notExtends(other: Class<*>?): Boolean

Change Records

v1.0.0 first

Function Illustrate

\u5F53\u524D Class \u662F\u5426\u4E0D\u7EE7\u627F\u4E8E other\u3002

\u6B64\u65B9\u6CD5\u76F8\u5F53\u4E8E extends \u7684\u53CD\u5411\u5224\u65AD\u3002

Function Example

\u4F60\u53EF\u4EE5\u4F7F\u7528\u6B64\u65B9\u6CD5\u6765\u5224\u65AD\u4E24\u4E2A Class \u662F\u5426\u4E0D\u5B58\u5728\u7EE7\u627F\u5173\u7CFB\u3002

The following example

// \u5047\u8BBE\u4E0B\u9762\u8FD9\u4E24\u4E2A Class \u5C31\u662F\u4F60\u9700\u8981\u5224\u65AD\u7684 Class
val classA: Class<*>?
val classB: Class<*>?
// \u5224\u65AD A \u662F\u5426\u4E0D\u7EE7\u627F\u4E8E B
if (classA notExtends classB) {
    // Your code here.
}

Class?.implements - ext-method

infix fun Class<*>?.implements(other: Class<*>?): Boolean

Change Records

v1.0.0 first

Function Illustrate

\u5F53\u524D Class \u662F\u5426\u5B9E\u73B0\u4E86 other \u63A5\u53E3\u7C7B\u3002

\u5982\u679C\u5F53\u524D Class \u4E3A null \u6216 other \u4E3A null \u4F1A\u8FD4\u56DE false\u3002

Function Example

\u4F60\u53EF\u4EE5\u4F7F\u7528\u6B64\u65B9\u6CD5\u6765\u5224\u65AD\u4E24\u4E2A Class \u662F\u5426\u5B58\u5728\u4F9D\u8D56\u5173\u7CFB\u3002

The following example

// \u5047\u8BBE\u4E0B\u9762\u8FD9\u4E24\u4E2A Class \u5C31\u662F\u4F60\u9700\u8981\u5224\u65AD\u7684 Class
val classA: Class<*>?
val classB: Class<*>?
// \u5224\u65AD A \u662F\u5426\u5B9E\u73B0\u4E86 B \u63A5\u53E3\u7C7B
if (classA implements classB) {
    // Your code here.
}

Class?.notImplements - ext-method

infix fun Class<*>?.notImplements(other: Class<*>?): Boolean

Change Records

v1.0.0 first

Function Illustrate

\u5F53\u524D Class \u662F\u5426\u672A\u5B9E\u73B0 other \u63A5\u53E3\u7C7B\u3002

\u6B64\u65B9\u6CD5\u76F8\u5F53\u4E8E implements \u7684\u53CD\u5411\u5224\u65AD\u3002

Function Example

\u4F60\u53EF\u4EE5\u4F7F\u7528\u6B64\u65B9\u6CD5\u6765\u5224\u65AD\u4E24\u4E2A Class \u662F\u5426\u4E0D\u5B58\u5728\u4F9D\u8D56\u5173\u7CFB\u3002

The following example

// \u5047\u8BBE\u4E0B\u9762\u8FD9\u4E24\u4E2A Class \u5C31\u662F\u4F60\u9700\u8981\u5224\u65AD\u7684 Class
val classA: Class<*>?
val classB: Class<*>?
// \u5224\u65AD A \u662F\u5426\u672A\u5B9E\u73B0 B \u63A5\u53E3\u7C7B
if (classA notImplements classB) {
    // Your code here.
}

Class.toJavaPrimitiveType - ext-method

fun Class<*>.toJavaPrimitiveType(): Class<*>

Change Records

v1.0.0 first

Function Illustrate

\u81EA\u52A8\u8F6C\u6362\u5F53\u524D Class \u4E3A Java \u539F\u59CB\u7C7B\u578B (Primitive Type)\u3002

\u5982\u679C\u5F53\u524D Class \u4E3A Java \u6216 Kotlin \u57FA\u672C\u7C7B\u578B\u5C06\u81EA\u52A8\u6267\u884C\u7C7B\u578B\u8F6C\u6362\u3002

\u5F53\u524D\u80FD\u591F\u81EA\u52A8\u8F6C\u6362\u7684\u57FA\u672C\u7C7B\u578B\u5982\u4E0B\u3002

String.toClass - ext-method

fun String.toClass(loader: ClassLoader?, initialize: Boolean): Class<*>
inline fun <reified T> String.toClass(loader: ClassLoader?, initialize: Boolean): Class<T>

Change Records

v1.0.0 first

Function Illustrate

\u901A\u8FC7\u5B57\u7B26\u4E32\u7C7B\u540D\u8F6C\u6362\u4E3A loader \u4E2D\u7684\u5B9E\u4F53\u7C7B\u3002

Function Example

\u4F60\u53EF\u4EE5\u76F4\u63A5\u586B\u5199\u4F60\u8981\u67E5\u627E\u7684\u76EE\u6807 Class\uFF0C\u5FC5\u987B\u5728\u9ED8\u8BA4 ClassLoader \u4E0B\u5B58\u5728\u3002

The following example

"com.example.demo.DemoClass".toClass()

\u4F60\u8FD8\u53EF\u4EE5\u81EA\u5B9A\u4E49 Class \u6240\u5728\u7684 ClassLoader\u3002

The following example

val customClassLoader: ClassLoader? = ... // \u5047\u8BBE\u8FD9\u4E2A\u5C31\u662F\u4F60\u7684 ClassLoader
"com.example.demo.DemoClass".toClass(customClassLoader)

\u4F60\u8FD8\u53EF\u4EE5\u6307\u5B9A Class \u7684\u76EE\u6807\u7C7B\u578B\u3002

The following example

// \u6307\u5B9A\u7684 DemoClass \u5FC5\u987B\u5B58\u5728\u6216\u4E3A\u53EF\u8BBF\u95EE\u7684 stub
"com.example.demo.DemoClass".toClass<DemoClass>()

\u4F60\u8FD8\u53EF\u4EE5\u8BBE\u7F6E\u5728\u83B7\u53D6\u5230\u8FD9\u4E2A Class \u65F6\u662F\u5426\u81EA\u52A8\u6267\u884C\u5176\u9ED8\u8BA4\u7684\u9759\u6001\u65B9\u6CD5\u5757\uFF0C\u9ED8\u8BA4\u60C5\u51B5\u4E0B\u4E0D\u4F1A\u6267\u884C\u3002

The following example

// \u83B7\u53D6\u5E76\u6267\u884C DemoClass \u9ED8\u8BA4\u7684\u9759\u6001\u65B9\u6CD5\u5757
"com.example.demo.DemoClass".toClass(initialize = true)

\u9ED8\u8BA4\u7684\u9759\u6001\u65B9\u6CD5\u5757\u5728 Java \u4E2D\u4F7F\u7528\u5982\u4E0B\u65B9\u5F0F\u5B9A\u4E49\u3002

The following example

public class DemoClass {

    static {
        // \u8FD9\u91CC\u662F\u9759\u6001\u65B9\u6CD5\u5757\u7684\u5185\u5BB9
    }

    public DemoClass() {
        // ...
    }
}

String.toClassOrNull - ext-method

fun String.toClassOrNull(loader: ClassLoader?, initialize: Boolean): Class<*>?
inline fun <reified T> String.toClassOrNull(loader: ClassLoader?, initialize: Boolean): Class<T>?

Change Records

v1.0.0 first

Function Illustrate

\u901A\u8FC7\u5B57\u7B26\u4E32\u7C7B\u540D\u8F6C\u6362\u4E3A loader \u4E2D\u7684\u5B9E\u4F53\u7C7B\u3002

\u627E\u4E0D\u5230 Class \u4F1A\u8FD4\u56DE null\uFF0C\u4E0D\u4F1A\u629B\u51FA\u5F02\u5E38\u3002

Function Example

\u7528\u6CD5\u8BF7\u53C2\u8003 String.toClass \u65B9\u6CD5\u3002

classOf - method

inline fun <reified T> classOf(loader: ClassLoader?, initialize: Boolean): Class<T>

Change Records

v1.0.0 first

Function Illustrate

\u901A\u8FC7 T \u5F97\u5230\u5176 Class \u5B9E\u4F8B\u5E76\u8F6C\u6362\u4E3A\u5B9E\u4F53\u7C7B\u3002

Function Example

\u6211\u4EEC\u8981\u83B7\u53D6\u4E00\u4E2A Class \u5728 Kotlin \u4E0B\u4E0D\u901A\u8FC7\u53CD\u5C04\u65F6\u5E94\u8BE5\u8FD9\u6837\u505A\u3002

The following example

DemoClass::class.java

\u73B0\u5728\uFF0C\u4F60\u53EF\u4EE5\u76F4\u63A5 cast \u4E00\u4E2A\u5B9E\u4F8B\u5E76\u83B7\u53D6\u5B83\u7684 Class \u5BF9\u8C61\uFF0C\u5FC5\u987B\u5728\u5F53\u524D ClassLoader \u4E0B\u5B58\u5728\u3002

The following example

classOf<DemoClass>()

\u82E5\u76EE\u6807\u5B58\u5728\u7684 Class \u4E3A stub\uFF0C\u901A\u8FC7\u8FD9\u79CD\u65B9\u5F0F\uFF0C\u4F60\u8FD8\u53EF\u4EE5\u81EA\u5B9A\u4E49 Class \u6240\u5728\u7684 ClassLoader\u3002

The following example

val customClassLoader: ClassLoader? = ... // \u5047\u8BBE\u8FD9\u4E2A\u5C31\u662F\u4F60\u7684 ClassLoader
classOf<DemoClass>(customClassLoader)

String.hasClass - ext-method

fun String.hasClass(loader: ClassLoader?): Boolean

Change Records

v1.0.0 first

Function Illustrate

\u901A\u8FC7\u5B57\u7B26\u4E32\u7C7B\u540D\u4F7F\u7528\u6307\u5B9A\u7684 ClassLoader \u67E5\u627E\u662F\u5426\u5B58\u5728\u3002

Function Example

\u4F60\u53EF\u4EE5\u8F7B\u677E\u7684\u4F7F\u7528\u6B64\u65B9\u6CD5\u5224\u65AD\u5B57\u7B26\u4E32\u4E2D\u7684\u7C7B\u662F\u5426\u5B58\u5728\uFF0C\u6548\u679C\u7B49\u540C\u4E8E\u76F4\u63A5\u4F7F\u7528 Class.forName\u3002

The following example

if("com.example.demo.DemoClass".hasClass()) {
    // Your code here.
}

\u586B\u5165\u65B9\u6CD5\u4E2D\u7684 loader \u53C2\u6570\u53EF\u5224\u65AD\u6307\u5B9A\u7684 ClassLoader \u4E2D\u7684 Class \u662F\u5426\u5B58\u5728\u3002

The following example

val customClassLoader: ClassLoader? = ... // \u5047\u8BBE\u8FD9\u4E2A\u5C31\u662F\u4F60\u7684 ClassLoader
if("com.example.demo.DemoClass".hasClass(customClassLoader)) {
    // Your code here.
}

Class.hasField - ext-method

inline fun Class<*>.hasField(initiate: FieldConditions): Boolean

Change Records

v1.0.0 first

Function Illustrate

\u67E5\u627E\u53D8\u91CF\u662F\u5426\u5B58\u5728\u3002

Class.hasMethod - ext-method

inline fun Class<*>.hasMethod(initiate: MethodConditions): Boolean

Change Records

v1.0.0 first

Function Illustrate

\u67E5\u627E\u65B9\u6CD5\u662F\u5426\u5B58\u5728\u3002

Class.hasConstructor - ext-method

inline fun Class<*>.hasConstructor(initiate: ConstructorConditions): Boolean

Change Records

v1.0.0 first

Function Illustrate

\u67E5\u627E\u6784\u9020\u65B9\u6CD5\u662F\u5426\u5B58\u5728\u3002

Member.hasModifiers - ext-method

inline fun Member.hasModifiers(conditions: ModifierConditions): Boolean

Change Records

v1.0.0 first

Function Illustrate

\u67E5\u627E Member \u4E2D\u5339\u914D\u7684\u63CF\u8FF0\u7B26\u3002

Class.hasModifiers - ext-method

inline fun Class<*>.hasModifiers(conditions: ModifierConditions): Boolean

Change Records

v1.0.0 first

Function Illustrate

\u67E5\u627E Class \u4E2D\u5339\u914D\u7684\u63CF\u8FF0\u7B26\u3002

Class.field - ext-method

inline fun Class<*>.field(initiate: FieldConditions): FieldFinder.Result

Change Records

v1.0.0 first

Function Illustrate

\u67E5\u627E\u5E76\u5F97\u5230\u53D8\u91CF\u3002

Class.method - ext-method

inline fun Class<*>.method(initiate: MethodConditions): MethodFinder.Result

Change Records

v1.0.0 first

Function Illustrate

\u67E5\u627E\u5E76\u5F97\u5230\u65B9\u6CD5\u3002

Class.constructor - ext-method

inline fun Class<*>.constructor(initiate: ConstructorConditions): ConstructorFinder.Result

Change Records

v1.0.0 first

Function Illustrate

\u67E5\u627E\u5E76\u5F97\u5230\u6784\u9020\u65B9\u6CD5\u3002

Class.generic - ext-method

fun Class<*>.generic(): GenericClass?

Change Records

v1.0.0 first

Function Illustrate

\u83B7\u5F97\u5F53\u524D Class \u7684\u6CDB\u578B\u7236\u7C7B\u3002

\u5982\u679C\u5F53\u524D\u5B9E\u4F8B\u4E0D\u5B58\u5728\u6CDB\u578B\u5C06\u8FD4\u56DE null\u3002

Class.generic - ext-method

inline fun Class<*>.generic(initiate: GenericClass.() -> Unit): GenericClass?

Change Records

v1.0.0 first

Function Illustrate

\u83B7\u5F97\u5F53\u524D Class \u7684\u6CDB\u578B\u7236\u7C7B\u3002

\u5982\u679C\u5F53\u524D\u5B9E\u4F8B\u4E0D\u5B58\u5728\u6CDB\u578B\u5C06\u8FD4\u56DE null\u3002

Any.current - ext-method

inline fun <reified T : Any> T.current(ignored: Boolean): CurrentClass
inline fun <reified T : Any> T.current(ignored: Boolean, initiate: CurrentClass.() -> Unit): T

Change Records

v1.0.0 first

Function Illustrate

\u83B7\u5F97\u5F53\u524D\u5B9E\u4F8B\u7684\u7C7B\u64CD\u4F5C\u5BF9\u8C61\u3002

Class.buildOf - ext-method

inline fun Class<*>.buildOf(vararg args: Any?, initiate: ConstructorConditions): Any?
inline fun <T> Class<*>.buildOf(vararg args: Any?, initiate: ConstructorConditions): T?

Change Records

v1.0.0 first

Function Illustrate

\u901A\u8FC7\u6784\u9020\u65B9\u6CD5\u521B\u5EFA\u65B0\u5B9E\u4F8B\uFF0C\u6307\u5B9A\u7C7B\u578B T \u6216\u4EFB\u610F\u7C7B\u578B Any\u3002

Class.allMethods - ext-method

inline fun Class<*>.allMethods(isAccessible: Boolean, result: (index: Int, method: Method) -> Unit)

Change Records

v1.0.0 first

Function Illustrate

\u904D\u5386\u5F53\u524D\u7C7B\u4E2D\u7684\u6240\u6709\u65B9\u6CD5\u3002

Class.allConstructors - ext-method

inline fun Class<*>.allConstructors(isAccessible: Boolean, result: (index: Int, constructor: Constructor<*>) -> Unit)

Change Records

v1.0.0 first

Function Illustrate

\u904D\u5386\u5F53\u524D\u7C7B\u4E2D\u7684\u6240\u6709\u6784\u9020\u65B9\u6CD5\u3002

Class.allFields - ext-method

inline fun Class<*>.allFields(isAccessible: Boolean, result: (index: Int, field: Field) -> Unit)

Change Records

v1.0.0 first

Function Illustrate

\u904D\u5386\u5F53\u524D\u7C7B\u4E2D\u7684\u6240\u6709\u53D8\u91CF\u3002

`,236),p=[e];function t(c,r){return a(),n("div",null,p)}const d=s(o,[["render",t],["__file","ReflectionFactory.html.vue"]]);export{d as default};