gpt4 book ai didi

缺少依赖项的类的 Java getDeclaredFields

转载 作者:搜寻专家 更新时间:2023-11-01 03:51:49 26 4
gpt4 key购买 nike

我在获取缺少/未使用特定依赖项的对象的声明字段时遇到问题。

Field[] fields = OBJECT.getClass().getDeclaredFields();

当该对象导入了缺失的类时抛出 NoClassDefFoundError

我想这样做的原因是为了一个 Bukkit 插件。我想获取缺少依赖项的插件实例的字段(它们未被使用,但插件可以启动)。

在运行时,该插件将检查是否存在所需的依赖项,并根据它加载那些特定的字段。

我想到的可能的解决方案:
1) 虚拟创建缺少的类 + 包并使用 ASM 再试一次。但我真的不知道该怎么做。

问候,
格言

最佳答案

为什么要在缺少依赖项的情况下关心字段?

如果发生这种情况,该类在运行时不应该有实例。我不认为 JRE 将允许为其字段创建缺少类的对象实例。

如果您阅读 getDeclaredMethods,它可能意味着什么。

ASM/BCEL 是一个不错的方向,但实际上并不能创建缺失的类(因为您不知道它们是谁)。您正在使用它们来读取/解析“类文件”以对其签名进行解码(即不使用类加载器的 getDeclaredFields)。

关于缺少依赖项的类的 Java getDeclaredFields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24649555/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com