Skip to content

Conversation

@BingZi-233
Copy link
Contributor

Summary

  • 移除 OpenResult.cast() 方法对 org.tabooproject.reflex.Reflex 的依赖
  • 使用标准 Java 反射 API 替代 Reflex 工具类
  • 增加空值检查和类型判断优化

改动内容

问题:OpenResult 位于 common 模块的最底层,但却依赖了 reflex 库。这违反了模块分层原则——底层模块不应依赖上层工具。

解决方案:

  1. 使用 JDK 原生 java.lang.reflect.Field 替代 Reflex.getLocalProperty()
  2. 新增 readField() 私有方法,实现字段读取逻辑(支持父类字段遍历)
  3. 在 cast() 方法中增加防御性检查:
    - null 检查 → 返回 failed()
    - instanceof OpenResult 检查 → 直接类型转换,避免不必要的反射

@Bkm016 Bkm016 merged commit a4a2fa1 into TabooLib:dev/6.2.3 Dec 7, 2025
0 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants