45 Commits

Author SHA1 Message Date
10643305ec docs: update README 2025-06-25 16:45:54 +08:00
47d590d6a1 refactor: say good night to YukiReflection 2025-06-17 18:37:05 +08:00
d4ccd19ecd chore: bump dependencies 2025-03-17 00:15:37 +08:00
a92e4e0dcb chore: bump gradle to 8.13 2025-03-17 00:15:31 +08:00
b1fa277bc1 chore: update .editorconfig 2025-03-17 00:15:20 +08:00
6fc3448c2d chore: update project files 2025-03-17 00:15:01 +08:00
20ead7a981 chore: bump ci to v4 2025-02-22 02:16:18 +08:00
c58771eb1c chore: update .gitignore 2025-02-22 02:15:49 +08:00
453c8757a2 docs: update license 2025-02-05 10:37:25 +08:00
efeb3aa12a chore: update project files 2025-02-05 10:37:11 +08:00
a43ff83fed docs: update license 2025-01-13 10:50:58 +08:00
864a6db24a chore: update project files 2025-01-13 10:50:54 +08:00
eb669f3ad5 chore: update target sdk to 35 2024-11-10 22:06:01 +08:00
fcaf83b930 chore: bump dependencies 2024-11-10 22:05:32 +08:00
a3173ab245 chore: bump gradle to 8.10.2 2024-11-10 22:05:28 +08:00
32910b8348 chore: update .editorconfig 2024-06-21 10:16:53 +08:00
1ec33a30fe chore: bump dependencies & support Kotlin 2.0.0 2024-06-20 11:48:21 +08:00
7b6262e9a6 chore: bump gradle to 8.7 2024-06-20 11:48:08 +08:00
a13b1d326e chore: update .editorconfig 2024-06-20 11:48:01 +08:00
5152b895c3 chore: bump dependencies 2024-02-20 11:51:11 +08:00
8d113ce2ce chore: bump gradle to 8.6 2024-02-20 11:48:31 +08:00
364f13462c chore: update .editorconfig 2024-01-13 21:30:13 +08:00
a9ec361c3e docs: update contacts 2024-01-02 03:46:25 +08:00
9f34d3d975 docs: update copyright date to 2024 for all existing files 2024-01-01 01:39:10 +08:00
e63cd6341e docs: update about 2023-12-31 21:05:25 +08:00
370a5cfb97 style: merge to new ktlint version & rules 2023-12-29 21:42:24 +08:00
217b7d5efe chore: update .gitignore 2023-12-28 23:36:42 +08:00
748116bbde chore: merge to new maven publish way 2023-12-28 23:35:05 +08:00
1cbb12f9e1 chore: bump dependencies 2023-12-28 23:17:51 +08:00
dcf0f57648 chore: bump gradle to 8.5 2023-12-28 23:17:43 +08:00
a8c9a3afe1 docs: updates (some unimportant) 2023-12-18 09:11:25 +08:00
ae372587b7 chore(docs): bump dependencies 2023-12-18 09:10:18 +08:00
a92328268e docs: add new future 2023-12-18 07:25:53 +08:00
be9ae3bde7 docs: use relative link 2023-12-11 02:31:38 +08:00
aa2a057067 chore: update project files 2023-12-11 02:31:33 +08:00
353e85c03e chore: bump dependency versions 2023-12-11 01:11:14 +08:00
6a0ff96492 docs: update README-zh-CN 2023-12-11 01:07:30 +08:00
12a63e51d8 docs: update promotion 2023-11-18 18:11:28 +08:00
51f411ab39 chore: bump "com.highcapable.sweetdependency" version to 1.0.4 2023-11-14 01:06:31 +08:00
e14a7273d2 chore: bump "com.highcapable.sweetproperty" version to 1.0.5 2023-11-08 15:22:32 +08:00
bcdf203f1f chore: bump dependencies 2023-11-04 03:40:05 +08:00
7112845958 chore: bump plugin versions
- bump "com.highcapable.sweetdependency" version to 1.0.3
- bump "com.highcapable.sweetproperty" version to 1.0.4
2023-11-04 03:16:21 +08:00
7c62a6c42a docs: fix payment code url 2023-10-26 03:55:10 +08:00
47961b9673 docs: update promotion 2023-10-24 22:18:00 +08:00
414c7ac447 docs: additional update instructions 2023-10-07 18:02:35 +08:00
85 changed files with 1345 additions and 792 deletions

View File

@@ -10,6 +10,24 @@ ktlint_standard_argument-list-wrapping = disabled
ktlint_standard_parameter-list-wrapping = disabled
ktlint_standard_trailing-comma-on-declaration-site = disabled
ktlint_function_signature_body_expression_wrapping = multiline
ktlint_standard_string-template-indent = disabled
ktlint_standard_function-signature = disabled
ktlint_standard_trailing-comma-on-call-site = disabled
ktlint_standard_multiline-expression-wrapping = disabled
ktlint_standard_no-empty-first-line-in-class-body = disabled
ktlint_standard_if-else-wrapping = disabled
ktlint_standard_if-else-bracing = disabled
ktlint_standard_statement-wrapping = disabled
ktlint_standard_blank-line-before-declaration = disabled
ktlint_standard_no-empty-file = disabled
ktlint_standard_property-naming = disabled
ktlint_standard_function-naming = disabled
ktlint_standard_chain-method-continuation = disabled
ktlint_standard_class-signature = disabled
ktlint_standard_condition-wrapping = disabled
ktlint_standard_class-signature = disabled
ktlint_standard_no-trailing-spaces = disabled
ktlint_standard_multiline-loop = disabled
ij_continuation_indent_size = 2
indent_size = 4
indent_style = space

View File

@@ -16,11 +16,11 @@ jobs:
if: ${{ success() }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version: 18
- name: Build VuePress site

117
.gitignore vendored
View File

@@ -1,15 +1,110 @@
## Fully .gtignore for IntelliJ, Android Studio and Gradle based Java projects
## References:
## - https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
## - https://github.com/android/platform-samples/blob/main/.gitignore
# User-specific stuff
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf
# AWS User-specific
.idea/**/aws.xml
# Generated files
.idea/**/contentModel.xml
# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml
# Gradle
.idea/**/gradle.xml
.idea/**/libraries
# Gradle and Maven with auto-import
.idea/.name
.idea/artifacts
.idea/compiler.xml
.idea/jarRepositories.xml
.idea/modules.xml
.idea/*.iml
.idea/modules
.idea/caches
.idea/material_theme**
.idea/other.xml
*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
*.ipr
# Kotlin
.kotlin
# Misc
.idea/misc.xml
# CMake
cmake-build-*/
# Mongo Explorer plugin
.idea/**/mongoSettings.xml
# File-based project format
*.iws
# IntelliJ
out/
# mpeltonen/sbt-idea plugin
.idea_modules/
# JIRA plugin
atlassian-ide-plugin.xml
# Cursive Clojure plugin
.idea/replstate.xml
# SonarLint plugin
.idea/sonarlint/
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties
# Editor-based Rest Client
.idea/httpRequests
# Android studio 3.1+ serialized cache file
.idea/caches/build_file_checksums.ser
# Android studio 3.1+ additional
.idea/deployment*.xml
.idea/assetWizardSettings.xml
.idea/androidTestResultsUserPreferences.xml
# Android projects
**/local.properties
/captures
.externalNativeBuild
.cxx
local.properties
# Gradle projects
.gradle
build/
# Mkdocs temporary serving folder
docs-gen
site
*.bak
.idea/appInsightsSettings.xml
# Mac OS
.DS_Store

6
.idea/AndroidProjectSystem.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AndroidProjectSystem">
<option name="providerId" value="com.android.tools.idea.GradleProjectSystem" />
</component>
</project>

View File

@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="AppInsightsSettings">
<option name="tabSettings">
<map>
<entry key="Firebase Crashlytics">
<value>
<InsightsFilterSettings>
<option name="connection">
<ConnectionSetting>
<option name="appId" value="PLACEHOLDER" />
<option name="mobileSdkAppId" value="" />
<option name="projectId" value="" />
<option name="projectNumber" value="" />
</ConnectionSetting>
</option>
<option name="signal" value="SIGNAL_UNSPECIFIED" />
<option name="timeIntervalDays" value="THIRTY_DAYS" />
<option name="visibilityType" value="ALL" />
</InsightsFilterSettings>
</value>
</entry>
</map>
</option>
</component>
</project>

6
.idea/compiler.xml generated
View File

@@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="17" />
</component>
</project>

View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="deploymentTargetDropDown">
<value>
<entry key="samples.demo-android">
<State />
</entry>
</value>
</component>
</project>

View File

@@ -1,6 +1,7 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="CheckImageSize" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="ClassCanBeRecord" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="myIgnoredAnnotations">
<list>
@@ -12,7 +13,46 @@
</list>
</option>
</inspection_tool>
<inspection_tool class="ComposePreviewDimensionRespectsLimit" enabled="true" level="WARNING" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="ComposePreviewMustBeTopLevelFunction" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="ComposePreviewNeedsComposableAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="ComposePreviewNotSupportedInUnitTestFiles" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="FieldCanBeLocal" enabled="false" level="WARNING" enabled_by_default="false" />
<inspection_tool class="GlancePreviewDimensionRespectsLimit" enabled="true" level="WARNING" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="GlancePreviewMustBeTopLevelFunction" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="GlancePreviewNeedsComposableAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="GlancePreviewNotSupportedInUnitTestFiles" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewAnnotationInFunctionWithParameters" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewApiLevelMustBeValid" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewFontScaleMustBeGreaterThanZero" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewMultipleParameterProviders" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="PreviewPickerAnnotation" enabled="true" level="ERROR" enabled_by_default="true">
<option name="composableFile" value="true" />
</inspection_tool>
<inspection_tool class="SpellCheckingInspection" enabled="false" level="TYPO" enabled_by_default="false">
<option name="processCode" value="true" />
<option name="processLiterals" value="true" />

2
.idea/kotlinc.xml generated
View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KotlinJpsPluginSettings">
<option name="version" value="1.9.10" />
<option name="version" value="2.1.10" />
</component>
</project>

7
.idea/ktlint-plugin.xml generated Normal file
View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="KtLint plugin">
<ktlintMode>MANUAL</ktlintMode>
<formatOnSave>false</formatOnSave>
</component>
</project>

17
.idea/runConfigurations.xml generated Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RunConfigurationProducerService">
<option name="ignoredProducers">
<set>
<option value="com.intellij.execution.junit.AbstractAllInDirectoryConfigurationProducer" />
<option value="com.intellij.execution.junit.AllInPackageConfigurationProducer" />
<option value="com.intellij.execution.junit.PatternConfigurationProducer" />
<option value="com.intellij.execution.junit.TestInClassConfigurationProducer" />
<option value="com.intellij.execution.junit.UniqueIdConfigurationProducer" />
<option value="com.intellij.execution.junit.testDiscovery.JUnitTestDiscoveryConfigurationProducer" />
<option value="org.jetbrains.kotlin.idea.junit.KotlinJUnitRunConfigurationProducer" />
<option value="org.jetbrains.kotlin.idea.junit.KotlinPatternConfigurationProducer" />
</set>
</option>
</component>
</project>

View File

@@ -1,15 +1,25 @@
# Yuki Reflection
[![GitHub license](https://img.shields.io/github/license/HighCapable/YukiReflection?color=blue)](https://github.com/HighCapable/YukiReflection/blob/master/LICENSE)
[![GitHub release](https://img.shields.io/github/v/release/HighCapable/YukiReflection?display_name=release&logo=github&color=green)](https://github.com/HighCapable/YukiReflection/releases)
[![Telegram](https://img.shields.io/badge/discussion-Telegram-blue.svg?logo=telegram)](https://t.me/YukiReflection)
[![Telegram](https://img.shields.io/badge/discussion%20dev-Telegram-blue.svg?logo=telegram)](https://t.me/HighCapable_Dev)
[![GitHub license](https://img.shields.io/github/license/HighCapable/YukiReflection?color=blue&style=flat-square)](https://github.com/HighCapable/YukiReflection/blob/master/LICENSE)
[![GitHub release](https://img.shields.io/github/v/release/HighCapable/YukiReflection?display_name=release&logo=github&color=green&style=flat-square)](https://github.com/HighCapable/YukiReflection/releases)
[![Telegram](https://img.shields.io/badge/discussion-Telegram-blue.svg?logo=telegram&style=flat-square)](https://t.me/YukiReflection)
[![Telegram](https://img.shields.io/badge/discussion%20dev-Telegram-blue.svg?logo=telegram&style=flat-square)](https://t.me/HighCapable_Dev)
[![QQ](https://img.shields.io/badge/discussion%20dev-QQ-blue.svg?logo=tencent-qq&logoColor=red&style=flat-square)](https://qm.qq.com/cgi-bin/qm/qr?k=Pnsc5RY6N2mBKFjOLPiYldbAbprAU3V7&jump_from=webapi&authKey=X5EsOVzLXt1dRunge8ryTxDRrh9/IiW1Pua75eDLh9RE3KXE+bwXIYF5cWri/9lf)
<img src="https://github.com/HighCapable/YukiReflection/blob/master/img-src/icon.png?raw=true" width = "100" height = "100" alt="LOGO"/>
<img src="img-src/icon.png" width = "100" height = "100" alt="LOGO"/>
🌴️ 一个使用 Kotlin 构建的用于 Java 和 Android 平台高效反射 API。
[English](https://github.com/HighCapable/YukiReflection/blob/master/README.md) | 简体中文
[English](README.md) | 简体中文
| <img src="https://github.com/HighCapable/.github/blob/main/img-src/logo.jpg?raw=true" width = "30" height = "30" alt="LOGO"/> | [HighCapable](https://github.com/HighCapable) |
|-------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
这个项目属于上述组织,**点击上方链接关注这个组织**,发现更多好项目。
## 🚨 此项目已停止维护
此项目由于很多未能解决的黑盒问题已被弃用,我们不再推荐任何人使用它,现在请迁移到全新设计的 [KavaRef](https://github.com/HighCapable/KavaRef)。
## 这是什么
@@ -24,17 +34,14 @@
## 项目推广
如果你正在寻找一个可以自动管理 Gradle 项目依赖的 Gradle 插件,你可以了解一下 [SweetDependency](https://github.com/HighCapable/SweetDependency) 项目。
如果你正在寻找一个可以自动生成属性键值的 Gradle 插件,你可以了解一下 [SweetProperty](https://github.com/HighCapable/SweetProperty) 项目。
本项目同样使用了 **SweetDependency****SweetProperty**
## 捐赠支持
工作不易,无意外情况此项目将继续维护下去,提供更多可能,欢迎打赏。
<img src="https://github.com/HighCapable/fankes/blob/main/img-src/payment_code.jpg?raw=true" width = "500" alt="Payment Code"/>
<!--suppress HtmlDeprecatedAttribute -->
<div align="center">
<h2>嘿,还请君留步!👋</h2>
<h3>这里有 Android 开发工具、UI 设计、Gradle 插件、Xposed 模块和实用软件等相关项目。</h3>
<h3>如果下方的项目能为你提供帮助,不妨为我点个 star 吧!</h3>
<h3>所有项目免费、开源,遵循对应开源许可协议。</h3>
<h1><a href="https://github.com/fankes/fankes/blob/main/project-promote/README-zh-CN.md">→ 查看更多关于我的项目,请点击这里 ←</a></h1>
</div>
## Star History
@@ -47,7 +54,7 @@
```
Apache License Version 2.0
Copyright (C) 2019-2023 HighCapable
Copyright (C) 2019 HighCapable
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -62,4 +69,4 @@ See the License for the specific language governing permissions and
limitations under the License.
```
版权所有 © 2019-2023 HighCapable
版权所有 © 2019 HighCapable

View File

@@ -1,15 +1,26 @@
# Yuki Reflection
[![GitHub license](https://img.shields.io/github/license/HighCapable/YukiReflection?color=blue)](https://github.com/HighCapable/YukiReflection/blob/master/LICENSE)
[![GitHub release](https://img.shields.io/github/v/release/HighCapable/YukiReflection?display_name=release&logo=github&color=green)](https://github.com/HighCapable/YukiReflection/releases)
[![Telegram](https://img.shields.io/badge/discussion-Telegram-blue.svg?logo=telegram)](https://t.me/YukiReflection)
[![Telegram](https://img.shields.io/badge/discussion%20dev-Telegram-blue.svg?logo=telegram)](https://t.me/HighCapable_Dev)
[![GitHub license](https://img.shields.io/github/license/HighCapable/YukiReflection?color=blue&style=flat-square)](https://github.com/HighCapable/YukiReflection/blob/master/LICENSE)
[![GitHub release](https://img.shields.io/github/v/release/HighCapable/YukiReflection?display_name=release&logo=github&color=green&style=flat-square)](https://github.com/HighCapable/YukiReflection/releases)
[![Telegram](https://img.shields.io/badge/discussion-Telegram-blue.svg?logo=telegram&style=flat-square)](https://t.me/YukiReflection)
[![Telegram](https://img.shields.io/badge/discussion%20dev-Telegram-blue.svg?logo=telegram&style=flat-square)](https://t.me/HighCapable_Dev)
[![QQ](https://img.shields.io/badge/discussion%20dev-QQ-blue.svg?logo=tencent-qq&logoColor=red&style=flat-square)](https://qm.qq.com/cgi-bin/qm/qr?k=Pnsc5RY6N2mBKFjOLPiYldbAbprAU3V7&jump_from=webapi&authKey=X5EsOVzLXt1dRunge8ryTxDRrh9/IiW1Pua75eDLh9RE3KXE+bwXIYF5cWri/9lf)
<img src="https://github.com/HighCapable/YukiReflection/blob/master/img-src/icon.png?raw=true" width = "100" height = "100" alt="LOGO"/>
<img src="img-src/icon.png" width = "100" height = "100" alt="LOGO"/>
🌴️ An efficient Reflection API for Java and Android built in Kotlin.
English | [简体中文](https://github.com/HighCapable/YukiReflection/blob/master/README-zh-CN.md)
English | [简体中文](README-zh-CN.md)
| <img src="https://github.com/HighCapable/.github/blob/main/img-src/logo.jpg?raw=true" width = "30" height = "30" alt="LOGO"/> | [HighCapable](https://github.com/HighCapable) |
|-------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------|
This project belongs to the above-mentioned organization, **click the link above to follow this organization** and discover more good projects.
## 🚨 Maintenance of this project has been stopped
The `YukiReflection` project has been deprecated due to many unsolved black box issues, so we no longer recommend anyone to use it.
Please now migrate to the brand new design [KavaRef](https://github.com/HighCapable/KavaRef).
## What's this
@@ -24,13 +35,14 @@ The name is taken from ["ももくり" heroine Yuki Kurihara](https://www.bilibi
## Promotion
If you are looking for a Gradle plugin that can automatically manage Gradle project dependencies,
you can check out the [SweetDependency](https://github.com/HighCapable/SweetDependency) project.
If you are looking for a Gradle plugin that can automatically generate properties key-values,
you can check out the [SweetProperty](https://github.com/HighCapable/SweetProperty) project.
This project also uses **SweetDependency** and **SweetProperty**.
<!--suppress HtmlDeprecatedAttribute -->
<div align="center">
<h2>Hey, please stay! 👋</h2>
<h3>Here are related projects such as Android development tools, UI design, Gradle plugins, Xposed Modules and practical software. </h3>
<h3>If the project below can help you, please give me a star! </h3>
<h3>All projects are free, open source, and follow the corresponding open source license agreement. </h3>
<h1><a href="https://github.com/fankes/fankes/blob/main/project-promote/README.md">→ To see more about my projects, please click here ←</a></h1>
</div>
## Star History
@@ -43,7 +55,7 @@ This project also uses **SweetDependency** and **SweetProperty**.
```
Apache License Version 2.0
Copyright (C) 2019-2023 HighCapable
Copyright (C) 2019 HighCapable
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -58,4 +70,4 @@ See the License for the specific language governing permissions and
limitations under the License.
```
Copyright © 2019-2023 HighCapable
Copyright © 2019 HighCapable

View File

@@ -3,4 +3,5 @@ plugins {
autowire(libs.plugins.kotlin.jvm) apply false
autowire(libs.plugins.kotlin.android) apply false
autowire(libs.plugins.jetbrains.compose) apply false
autowire(libs.plugins.compose.compiler) apply false
}

View File

@@ -3,10 +3,10 @@
"license": "Apache-2.0",
"devDependencies": {
"@mr-hope/vuepress-plugin-copy-code": "^1.30.0",
"@vuepress/plugin-prismjs": "2.0.0-beta.67",
"@vuepress/plugin-search": "2.0.0-beta.67",
"@vuepress/plugin-shiki": "2.0.0-beta.67",
"vuepress": "2.0.0-beta.67"
"@vuepress/plugin-prismjs": "2.0.0-rc.0",
"@vuepress/plugin-search": "2.0.0-rc.0",
"@vuepress/plugin-shiki": "2.0.0-rc.0",
"vuepress": "2.0.0-rc.0"
},
"scripts": {
"docs:dev": "vuepress dev src",

View File

@@ -0,0 +1,38 @@
import { defineClientConfig } from '@vuepress/client'
import { h, onMounted, watch } from 'vue'
import DeprecatedBanner from './components/DeprecatedBanner.vue'
import { useRoute } from 'vue-router'
export default defineClientConfig({
rootComponents: [
() => h(DeprecatedBanner)
],
setup() {
const route = useRoute()
const adjustLayout = () => {
requestAnimationFrame(() => {
const banner = document.querySelector('.deprecated-banner') as HTMLElement
const height = banner?.clientHeight ?? 0
const themeContainer = document.querySelector('.theme-container') as HTMLElement
const navbar = document.querySelector('.navbar') as HTMLElement
const sidebar = document.querySelector('.sidebar') as HTMLElement
if (height > 0) {
if (themeContainer) themeContainer.style.paddingTop = `${height}px`
if (navbar) navbar.style.marginTop = `${height}px`
if (sidebar) sidebar.style.marginTop = `${height}px`
}
})
}
onMounted(() => {
adjustLayout()
})
watch(() => route.path, () => {
adjustLayout()
})
}
})

View File

@@ -0,0 +1,35 @@
<template>
<div class="deprecated-banner">
YukiReflection is deprecated, Start trying <a href="https://github.com/HighCapable/KavaRef" target="_blank"
rel="noopener">KavaRef</a> now!&nbsp
YukiReflection 已被弃用立即尝试 <a href="https://github.com/HighCapable/KavaRef/blob/main/README-zh-CN.md"
target="_blank" rel="noopener">KavaRef</a>
</div>
</template>
<style scoped>
.deprecated-banner {
position: fixed;
top: 0;
left: 0;
width: 100%;
background-color: #ffdddd;
color: #a00000;
text-align: center;
padding: 12px 24px;
font-weight: bold;
font-size: 16px;
z-index: 9999;
}
.deprecated-banner a {
color: #a00000;
text-decoration: underline;
font-weight: bold;
}
.deprecated-banner a:hover {
color: #600000;
}
</style>

View File

@@ -1,4 +1,4 @@
# About this Document
# About This Document
> This document is powered by [VuePress](https://v2.vuepress.vuejs.org/en).
@@ -9,7 +9,7 @@
```:no-line-numbers
Apache License Version 2.0
Copyright (C) 2019-2023 HighCapable
Copyright (C) 2019 HighCapable
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -24,4 +24,4 @@ See the License for the specific language governing permissions and
limitations under the License.
```
Copyright © 2019-2023 HighCapable
Copyright © 2019 HighCapable

View File

@@ -18,6 +18,7 @@ Time zone of version release date: **UTC+8**
### 1.0.3 | 2023.10.07 &ensp;<Badge type="tip" text="latest" vertical="middle" />
- The license agreement has been changed from `MIT` to `Apache-2.0`, subsequent versions will be distributed under this license agreement, you should change the relevant license agreement after using this version
- Change the type of dependency library from **Android Library** (aar) back to **Java Library** (jar)
- Adapt and support the native Java platform (some functions are only available on the Android platform)
- Fixed [fix get interfaces of class](https://github.com/HighCapable/YukiHookAPI/pull/38) issue and merged into `YukiReflection`

View File

@@ -2,7 +2,10 @@
> If you have any questions in use, or have any constructive suggestions, you can contact us.
Join us [Click to join Telegram group](https://t.me/YukiReflection), [Click to join Telegram group (Developer)](https://t.me/HighCapable_Dev).
Join our developers group.
- [Click to join Telegram group](https://t.me/YukiReflection)
- [Click to join Telegram group (Developer)](https://t.me/HighCapable_Dev)
Find me on **Twitter** [@fankesyooni](https://twitter.com/fankesyooni).

View File

@@ -101,4 +101,119 @@ MyClass().also {
The above functions may change after the actual release, and the functions of the actual version shall prevail.
:::
### Automatically Generate Directly Called Class Objects
In Kotlin, the way to represent Java class objects is `YourObject::class.java`.
This writing method is usually very long and will be very unsightly when used extensively during reflection.
In the existing version, we have built-in commonly used `Class` objects, but this will increase the size of dependencies, and these objects may not be used in most cases.
For example, `StringClass`, `IntType`, etc., these objects are built in `YukiReflection`.
So we plan to add a function in the future, which can use `properties` to create a list of `Class` objects that need to be generated,
and generate these `Class` objects in sequence through the Gradle plugin.
`Class` objects of primitive types such as those mentioned above will still be built into `YukiReflection`,
and the remaining `Class` objects need to be defined by yourself.
The generated name specification is **Class Name + Class**.
In order to prevent package name conflicts, you can control the sub-package name of the generated `Class` object.
In the configuration file, you don't need to add `Class` as a suffix.
You can define the generated root package name in the Gradle plugin, which defaults to `com.highcapable.yukireflection.generated.classes`.
> The following example
```properties
# The most basic way to define is to write the name directly
# Will be generated to com.highcapable.yukireflection.generated.classes.BundleClass
android.os.Bundle=Bundle
# You can use the "." form in front to define the prefixed subpackage name
# For example, we want to define this class to the desired package name
# Will be generated to com.highcapable.yukireflection.generated.classes.myandroid.myos.BundleClass
android.os.Bundle=myandroid.myos.Bundle
# You can also not fill in the key value content, which will use the key value name
# as the defined package name and class name
# Will be generated to com.highcapable.yukireflection.generated.classes.android.os.BundleClass
android.os.Bundle
```
The approximate code form of the `Class` object generated by the above method is as follows.
```kotlin
package com.highcapable.yukireflection.generated.classes.android.os
// Used with default ClassLoader
val BundleClass: Class<*> = "android.os.Bundle".toClass()
// Used when ClassLoader is specified
fun BundleClass(loader: ClassLoader): Class<*> = "android.os.Bundle".toClass(loader)
```
Maybe this `Class` may not be obtained in some cases.
In this case, you can refer to the following configuration method.
> The following example
```properties
# Add "?" after the key value to define a nullable Class object
android.os.Bundle?
```
The approximate code form of the `Class` object generated by the above method is as follows.
```kotlin
package com.highcapable.yukireflection.generated.classes.android.os
// Used with default ClassLoader
val BundleClass: Class<*>? = "android.os.Bundle".toClassOrNull()
// Used when ClassLoader is specified
fun BundleClass(loader: ClassLoader): Class<*>? = "android.os.Bundle".toClassOrNull(loader)
```
If this `Class` object can be referenced by direct call, you can refer to the following configuration method at this time.
> The following example
```properties
# Add "!!" after the key value to define a Class object that can be called directly
android.os.Bundle!!
```
The approximate code form of the `Class` object generated by the above method is as follows.
```kotlin
package com.highcapable.yukireflection.generated.classes.android.os
import android.os.Bundle
// Used with default ClassLoader
val BundleClass: Class<Bundle> = classOf<Bundle>()
// Used when ClassLoader is specified
fun BundleClass(loader: ClassLoader): Class<Bundle> = classOf<Bundle>(loader)
```
With the generated `Class` object, we can happily use `YukiReflection` for reflection.
> The following example
```kotlin
method {
name = "onCreate"
param(BundleClass)
}
```
::: tip
The above functions may change after the actual release, and the functions of the actual version shall prevail.
:::

View File

@@ -28,7 +28,7 @@ The project needs to be created using `Android Studio` or `IntelliJ IDEA` and th
We recommend using Kotlin DSL as the Gradle build script language and [SweetDependency](https://github.com/HighCapable/SweetDependency) to manage dependencies.
#### SweetDependency Method
#### SweetDependency (Recommended)
Add the repositories and dependencies in your project's `SweetDependency` configuration file.
@@ -60,7 +60,7 @@ dependencies {
}
```
#### Traditional Method (Not Recommended)
#### Traditional Method
Add repositories in your project `build.gradle.kts` or `build.gradle`.

View File

@@ -16,7 +16,7 @@ features:
details: Not only the Android platform, it is highly compatible with the Java API and can be used on any Kotlin on JVM project, wherever Java is available.
- title: Quickly Started
details: Simple and easy to use it now! Do not need complex configuration and full development experience, Integrate dependencies and enjoy yourself.
footer: Apache-2.0 License | Copyright (C) 2019-2023 HighCapable
footer: Apache-2.0 License | Copyright (C) 2019 HighCapable
---
### Bring it on! Let reflection become poetic and picturesque

View File

@@ -13,5 +13,5 @@ actions:
- text: 简体中文
link: /zh-cn/
type: secondary
footer: Apache-2.0 License | Copyright (C) 2019-2023 HighCapable
footer: Apache-2.0 License | Copyright (C) 2019 HighCapable
---

View File

@@ -2,14 +2,14 @@
> 此文档由 [VuePress](https://v2.vuepress.vuejs.org/zh) 强力驱动。
## License
## 许可证
[Apache-2.0](https://github.com/HighCapable/YukiReflection/blob/master/LICENSE)
```:no-line-numbers
Apache License Version 2.0
Copyright (C) 2019-2023 HighCapable
Copyright (C) 2019 HighCapable
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -24,4 +24,4 @@ See the License for the specific language governing permissions and
limitations under the License.
```
版权所有 © 2019-2023 HighCapable
版权所有 © 2019 HighCapable

View File

@@ -10,6 +10,7 @@
### 1.0.3 | 2023.10.07 &ensp;<Badge type="tip" text="最新" vertical="middle" />
- 许可协议由 `MIT` 变更为 `Apache-2.0`,在此之后的版本将由此许可协议进行分发,您在使用此版本后应变更相关许可协议
- 将依赖库的类型由 **Android Library** (aar) 修改回 **Java Library** (jar)
- 适配并支持原生 Java 平台 (部分功能仅限 Android 平台)
- 修复 [fix get interfaces of class](https://github.com/HighCapable/YukiHookAPI/pull/38) 问题并合并到 `YukiReflection`

View File

@@ -2,7 +2,11 @@
> 如在使用中有任何问题,或有任何建设性的建议,都可以联系我们。
加入我们 [点击加入 Telegram 群组](https://t.me/YukiReflection)、[点击加入 Telegram 群组 (开发者)](https://t.me/HighCapable_Dev)
加入我们的开发者群组
- [点击加入 Telegram 群组](https://t.me/YukiReflection)
- [点击加入 Telegram 群组 (开发者)](https://t.me/HighCapable_Dev)
- [点击加入 QQ 群 (开发者)](https://qm.qq.com/cgi-bin/qm/qr?k=Pnsc5RY6N2mBKFjOLPiYldbAbprAU3V7&jump_from=webapi&authKey=X5EsOVzLXt1dRunge8ryTxDRrh9/IiW1Pua75eDLh9RE3KXE+bwXIYF5cWri/9lf)
**酷安** 找到我 [@星夜不荟](http://www.coolapk.com/u/876977)。

View File

@@ -101,4 +101,110 @@ MyClass().also {
以上功能可能会在实际推出后有所变化,最终以实际版本的功能为准。
:::
### 自动生成可直接调用的 Class 对象
在 Kotlin 中,表示 Java 的类对象的方式是 `YourObject::class.java`,这个写法通常会很长,在反射过程中大量使用会很不美观。
在现有版本中,我们内置了常用的 `Class` 对象,但是这会增大依赖的体积,而且大多数情况下可能都用不到这些对象。
例如 `StringClass`、`IntType` 等等,这些对象都是在 `YukiReflection` 中内置的。
所以我们计划在后期添加一个功能,可以使用 `properties` 的方式创建一个需要生成的 `Class` 对象列表,通过 Gradle 插件依次生成这些 `Class` 对象。
诸如上面提到的这些原始类型的 `Class` 对象依然会内置在 `YukiReflection` 中,其余的 `Class` 对象需要自行定义。
生成的名称规范为 **类名 + Class**,为了防止包名冲突,你可以控制生成的 `Class` 对象的子包名。
在配置文件中,你无需添加 `Class` 作为后缀。
你可以在 Gradle 插件中定义生成的根包名,默认为 `com.highcapable.yukireflection.generated.classes`。
> 示例如下
```properties
# 最基本的定义方式就是直接写名称
# 将会生成到 com.highcapable.yukireflection.generated.classes.BundleClass
android.os.Bundle=Bundle
# 你可以在前方使用 "." 的形式来定义前置子包名
# 例如我们想把这个类定义到想要的包名
# 将会生成到 com.highcapable.yukireflection.generated.classes.myandroid.myos.BundleClass
android.os.Bundle=myandroid.myos.Bundle
# 你也可以不填写键值内容,这将使用键值名称作为定义的包名和类名
# 将会生成到 com.highcapable.yukireflection.generated.classes.android.os.BundleClass
android.os.Bundle
```
上述方式生成的 `Class` 对象的大概代码形式如下。
```kotlin
package com.highcapable.yukireflection.generated.classes.android.os
// 在默认 ClassLoader 的情况下使用
val BundleClass: Class<*> = "android.os.Bundle".toClass()
// 在指定 ClassLoader 的情况下使用
fun BundleClass(loader: ClassLoader): Class<*> = "android.os.Bundle".toClass(loader)
```
也许这个 `Class` 可能在一些情况下无法被得到,这个时候你可以参考以下配置方式。
> 示例如下
```properties
# 在键值后添加 "?" 的形式来定义可空的 Class 对象
android.os.Bundle?
```
上述方式生成的 `Class` 对象的大概代码形式如下。
```kotlin
package com.highcapable.yukireflection.generated.classes.android.os
// 在默认 ClassLoader 的情况下使用
val BundleClass: Class<*>? = "android.os.Bundle".toClassOrNull()
// 在指定 ClassLoader 的情况下使用
fun BundleClass(loader: ClassLoader): Class<*>? = "android.os.Bundle".toClassOrNull(loader)
```
如果这个 `Class` 对象能使用直接调用的方式进行引用,这个时候你可以参考以下配置方式。
> 示例如下
```properties
# 在键值后添加 "!!" 的形式来定义可直接调用的 Class 对象
android.os.Bundle!!
```
上述方式生成的 `Class` 对象的大概代码形式如下。
```kotlin
package com.highcapable.yukireflection.generated.classes.android.os
import android.os.Bundle
// 在默认 ClassLoader 的情况下使用
val BundleClass: Class<Bundle> = classOf<Bundle>()
// 在指定 ClassLoader 的情况下使用
fun BundleClass(loader: ClassLoader): Class<Bundle> = classOf<Bundle>(loader)
```
有了生成的 `Class` 对象,我们就可以愉快地使用 `YukiReflection` 进行反射了。
> 示例如下
```kotlin
method {
name = "onCreate"
param(BundleClass)
}
```
::: tip
以上功能可能会在实际推出后有所变化,最终以实际版本的功能为准。
:::

View File

@@ -28,7 +28,7 @@
我们推荐使用 Kotlin DSL 作为 Gradle 构建脚本语言并推荐使用 [SweetDependency](https://github.com/HighCapable/SweetDependency) 来管理依赖。
#### SweetDependency 方式
#### SweetDependency (推荐)
在你的项目 `SweetDependency` 配置文件中添加存储库和依赖。
@@ -59,7 +59,7 @@ dependencies {
}
```
#### 传统方式 (不推荐)
#### 传统方式
在你的项目 `build.gradle.kts``build.gradle` 中添加存储库。

View File

@@ -16,7 +16,7 @@ features:
details: 不仅仅是 Android 平台,它与 Java API 高度兼容,可使用在任何 Kotlin on JVM 的项目上,有 Java 的地方就可以使用。
- title: 快速上手
details: 简单易用,不需要繁琐的配置,不需要十足的开发经验,搭建环境集成依赖即可立即开始使用。
footer: Apache-2.0 License | Copyright (C) 2019-2023 HighCapable
footer: Apache-2.0 License | Copyright (C) 2019 HighCapable
---
### 来吧!让反射也变得诗情画意

File diff suppressed because it is too large Load Diff

View File

@@ -6,24 +6,31 @@ kotlin.code.style=official
kotlin.incremental.useClasspathSnapshot=true
# Project Configuration
project.name=YukiReflection
project.description=An efficient Reflection API for Java and Android built in Kotlin.
project.url=https://github.com/HighCapable/YukiReflection
project.groupName=com.highcapable.yukireflection
project.yukireflection-core.moduleName=api
project.yukireflection-core.version="1.0.3"
project.licence.name=Apache License 2.0
project.licence.url=https://github.com/HighCapable/YukiReflection/blob/master/LICENSE
project.developer.id="0"
project.developer.name=fankes
project.developer.email=qzmmcn@163.com
project.android.compileSdk=34
project.android.compileSdk=35
project.android.minSdk=21
project.android.targetSdk=34
project.android.targetSdk=35
project.samples-demo-android.packageName=${project.groupName}.demo_app
project.samples-demo-android.versionName=universal
project.samples-demo-android.versionCode=1
project.samples-demo-jvm.groupName=${project.groupName}.demo_jvm
# Maven Publish Configuration
maven.publish.scm.connection=scm:git:git://github.com/HighCapable/YukiReflection.git
maven.publish.scm.developerConnection=scm:git:ssh://github.com/HighCapable/YukiReflection.git
maven.publish.scm.url=https://github.com/HighCapable/YukiReflection
SONATYPE_HOST=S01
RELEASE_SIGNING_ENABLED=true
# Maven POM Configuration
POM_NAME=YukiReflection
POM_DESCRIPTION=An efficient Reflection API for Java and Android built in Kotlin.
POM_URL=https://github.com/HighCapable/YukiReflection
POM_LICENSE_NAME=Apache License 2.0
POM_LICENSE_URL=https://github.com/HighCapable/YukiReflection/blob/master/LICENSE
POM_LICENSE_DIST=repo
POM_SCM_URL=https://github.com/HighCapable/YukiReflection
POM_SCM_CONNECTION=scm:git:git://github.com/HighCapable/YukiReflection.git
POM_SCM_DEV_CONNECTION=scm:git:ssh://github.com/HighCapable/YukiReflection.git
POM_DEVELOPER_ID=0
POM_DEVELOPER_NAME=fankes
POM_DEVELOPER_EMAIL=qzmmcn@163.com
POM_DEVELOPER_URL=https://github.com/fankes

View File

@@ -11,24 +11,27 @@ repositories:
plugins:
org.jetbrains.kotlin.jvm:
alias: kotlin-jvm
version: 1.9.10
version: 2.1.10
org.jetbrains.kotlin.android:
alias: kotlin-android
version-ref: kotlin-jvm
org.jetbrains.compose:
alias: jetbrains-compose
version: 1.5.1
version: 1.7.3
org.jetbrains.kotlin.plugin.compose:
alias: compose-compiler
version-ref: kotlin-jvm
com.android.application:
alias: android-application
version: 8.1.1
version: 8.9.0
com.vanniktech.maven.publish:
alias: maven-publish
version: 0.25.3
version: 0.31.0
libraries:
androidx.compose:
compose-bom:
version: 2023.09.02
version: 2025.03.00
androidx.compose.foundation:
foundation:
version: <no-spec>
@@ -40,22 +43,22 @@ libraries:
version: <no-spec>
androidx.activity:
activity-compose:
version: 1.7.2
version: 1.10.1
androidx.core:
core-ktx:
version: 1.10.0
version: 1.15.0
androidx.appcompat:
appcompat:
version: 1.6.1
version: 1.7.0
com.google.android.material:
material:
version: 1.8.0
version: 1.12.0
androidx.test.ext:
junit:
version: 1.1.5
version: 1.2.1
androidx.test.espresso:
espresso-core:
version: 3.5.1
version: 3.6.1
junit:
junit:
version: 4.13.2

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

1
samples/.gitignore vendored
View File

@@ -1 +0,0 @@
/build

View File

@@ -1 +0,0 @@
/build

View File

@@ -1,6 +1,7 @@
plugins {
autowire(libs.plugins.android.application)
autowire(libs.plugins.kotlin.android)
autowire(libs.plugins.compose.compiler)
}
android {

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1 +0,0 @@
/build

View File

@@ -1,6 +1,7 @@
plugins {
autowire(libs.plugins.kotlin.jvm)
autowire(libs.plugins.jetbrains.compose)
autowire(libs.plugins.compose.compiler)
}
group = property.project.samples.demo.jvm.groupName
@@ -10,6 +11,10 @@ java {
targetCompatibility = JavaVersion.VERSION_17
}
kotlin {
jvmToolchain(17)
}
compose.desktop {
application {
mainClass = "$group.MainKt"

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -7,8 +7,8 @@ pluginManagement {
}
}
plugins {
id("com.highcapable.sweetdependency") version "1.0.2"
id("com.highcapable.sweetproperty") version "1.0.3"
id("com.highcapable.sweetdependency") version "1.0.4"
id("com.highcapable.sweetproperty") version "1.0.5"
}
sweetProperty {
global {

View File

@@ -1 +0,0 @@
/build

View File

@@ -4,15 +4,16 @@ plugins {
}
group = property.project.groupName
version = property.project.yukireflection.core.version
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
tasks.withType<org.jetbrains.kotlin.gradle.tasks.KotlinCompile>().configureEach {
kotlinOptions {
jvmTarget = "17"
kotlin {
jvmToolchain(17)
compilerOptions {
freeCompilerArgs = listOf(
"-Xno-param-assertions",
"-Xno-call-assertions",
@@ -26,31 +27,9 @@ dependencies {
}
mavenPublishing {
coordinates(property.project.groupName, property.project.yukireflection.core.moduleName, property.project.yukireflection.core.version)
pom {
name = property.project.name
description = property.project.description
url = property.project.url
licenses {
license {
name = property.project.licence.name
url = property.project.licence.url
distribution = property.project.licence.url
}
}
developers {
developer {
id = property.project.developer.id
name = property.project.developer.name
email = property.project.developer.email
}
}
scm {
url = property.maven.publish.scm.url
connection = property.maven.publish.scm.connection
developerConnection = property.maven.publish.scm.developerConnection
}
}
publishToMavenCentral(com.vanniktech.maven.publish.SonatypeHost.S01)
signAllPublications()
coordinates(
groupId = group.toString(),
artifactId = property.project.yukireflection.core.moduleName,
version = version.toString()
)
}

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0

View File

@@ -1,6 +1,6 @@
/*
* YukiReflection - An efficient Reflection API for Java and Android built in Kotlin.
* Copyright (C) 2019-2023 HighCapable
* Copyright (C) 2019 HighCapable
* https://github.com/HighCapable/YukiReflection
*
* Apache License Version 2.0