import{_ as r,r as i,o as c,c as d,b as a,d as e,e as t,a as n}from"./app-mh6GuRj9.js";const h={},l=a("h1",{id:"介绍",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#介绍","aria-hidden":"true"},"#"),e(" 介绍")],-1),s=a("blockquote",null,[a("p",null,[a("code",null,"KavaRef"),e(" 是一个使用 Kotlin 实现的现代化 Java 反射 API。")])],-1),_=a("h2",{id:"背景",tabindex:"-1"},[a("a",{class:"header-anchor",href:"#背景","aria-hidden":"true"},"#"),e(" 背景")],-1),f=a("p",null,"这是一个使用 Kotlin 实现的现代化 Java 反射 API,旨在提供更简洁、更易用的 API,同时保留 Java 反射的强大功能。",-1),u={href:"https://github.com/Lagrio",target:"_blank",rel:"noopener noreferrer"},p=a("strong",null,"K",-1),b=a("strong",null,"avaRef",-1),v={href:"https://github.com/HighCapable/YukiHookAPI",target:"_blank",rel:"noopener noreferrer"},k={href:"https://github.com/HighCapable/YukiReflection",target:"_blank",rel:"noopener noreferrer"},g=n('
如你所见,现在 KavaRef
是借助 YukiReflection
的设计思想完全重构的一套全新 API,它们没有从属关系,并将取代 YukiReflection
成为一个全新的反射解决方案。
如果你正在使用 YukiReflection
或与之相关的 YukiHookAPI
项目,你可以参考 这里 来迁移反射 API 的写法到 KavaRef
。
KavaRef
采用 Kotlin lambda 语法与 Java Builder 风格构建。
你必须已熟练掌握 Java 原生的反射 API,了解 Java 的类加载机制、字节码结构以及它们在 Kotlin 中的用法 (如果你正在使用 Kotlin)。
推荐使用 Kotlin,API 代码构成同样支持 Java,但是在纯 Java 项目中 KavaRef
有可能无法发挥其全部功能和语法糖优势。
文档全部的 Demo 示例代码都将首先使用 Kotlin 进行描述,如果你完全不会使用 Kotlin 那你将有可能无法更全面地体验和使用 KavaRef
的功能。