# # Introduction

> `KavaRef` is a modern Java reflection API implemented using Kotlin.

## # Background

This is a modern Java reflection API implemented using Kotlin, designed to provide a cleaner and easier-to-use API while retaining the power of Java reflection.

The project icon is designed by MaiTungTM
open in new window and is named from KotlinJavaReflection, meaning Java reflection implemented using Kotlin.

It was first born in the YukiHookAPI
open in new window, and was later decoupled into the YukiReflection
open in new window project.

As you can see, `KavaRef` is now a completely new set of APIs, completely refactored with the design ideas of `YukiReflection`, which has no affiliation and will replace `YukiReflection` as a new reflection solution.

If you are using `YukiReflection` or the `YukiHookAPI` project related to it, you can refer to here to migrate the reflection API to `KavaRef`.

## # Usage

`KavaRef` is built with Kotlin lambda syntax in a Java Builder style.

It can replace Java's native Reflection API
open in new window and implement a more complete reflection solution with a more human-friendly language.

## # Skill Requirements

You should be proficient with Java's native reflection APIs, understand Java's class loading mechanisms, bytecode structures, and how they are used in Kotlin (if you are using Kotlin).

## # Language Requirement

It is recommended to use Kotlin. API composition also supports Java, but in pure Java projects, `KavaRef` may not be able to demonstrate its full functionality and syntactic sugar advantages.

All the demo sample code in the documentation will be described using Kotlin first. If you don't know how to use Kotlin at all, you may not be able to fully experience and use the functionality of `KavaRef`.

## # Contribution

The maintenance of this project is inseparable from the support and contributions of all developers.

This project is currently in its early stages, and there may still be some problems or lack of functions you need.

If possible, feel free to submit a PR to contribute features you think are needed to this project or go to GitHub Issues
open in new window to make suggestions to us.