- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我在获取缺少/未使用特定依赖项的对象的声明字段时遇到问题。
Field[] fields = OBJECT.getClass().getDeclaredFields();
当该对象导入了缺失的类时抛出 NoClassDefFoundError
。
我想这样做的原因是为了一个 Bukkit 插件。我想获取缺少依赖项的插件实例的字段(它们未被使用,但插件可以启动)。
在运行时,该插件将检查是否存在所需的依赖项,并根据它加载那些特定的字段。
我想到的可能的解决方案:
1) 虚拟创建缺少的类 + 包并使用 ASM 再试一次。但我真的不知道该怎么做。
问候,
格言
最佳答案
为什么要在缺少依赖项的情况下关心字段?
如果发生这种情况,该类在运行时不应该有实例。我不认为 JRE 将允许为其字段创建缺少类的对象实例。
如果您阅读 getDeclaredMethods,它可能意味着什么。
ASM/BCEL 是一个不错的方向,但实际上并不能创建缺失的类(因为您不知道它们是谁)。您正在使用它们来读取/解析“类文件”以对其签名进行解码(即不使用类加载器的 getDeclaredFields)。
关于缺少依赖项的类的 Java getDeclaredFields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24649555/
我在获取缺少/未使用特定依赖项的对象的声明字段时遇到问题。 Field[] fields = OBJECT.getClass().getDeclaredFields(); 当该对象导入了缺失的类时抛出
我声明了一个这样的类: public class Student implements Serializable { private static final long serialVersi
为什么当我尝试调用我得到的方法时: java.lang.IllegalArgumentException: object is not an instance of declaring class 我
我正在修复游戏 minecraft 的模组。但是有一个问题。 mod不是我做的,所以我必须反编译它 长话短说,这是我第一次处理模糊的、不完整的来源。 我只会编辑一个文件(大约 1.5K)。 它反编译很
文档将该方法描述为: The elements in the array returned are not sorted and are not in any particular order 但是我
Class.getDeclaredFields() 的文档中提到 The elements in the returned array are not sorted and are not in an
java.lang.NoSuchFieldException: c at java.lang.Class.getDeclaredField(Unknown Source) at ru.onlymc.O
我在应用程序中使用 Jooq,我正在使用比较器,我的代码是这样的 public void columnsList(List records){ Collections.sort(re
由于在上述方法中调用了 Reflection.getCallerClass,我在调用 getDeclaredMethods/getDeclaredFields/getConstructors 时获得了
我只想获取 POJO 的一个字段名称,我的 java POJO 如下所示: public class A1 { private String field2; private S
我正在尝试将 Java 库 (JOhm) 与 Scala 一起使用,并注意到当库尝试使用类似 model.getClass().getDeclaredFields() 的内容读取我的 Scala 类的
getDeclaredFields[0].getType() 仅返回编译时类信息。我有以下代码,其中 java.lang.reflect.Field 的类型预期为实际类型。该字段被传递给 Unsafe
我正在运行一个函数,该函数循环遍历声明的字段,找到对象的两个实例之间的差异并将其输出(用于审计跟踪)。但是,如果我使用从 hibernate session 加载的对象,即: HazardSubmis
这看起来很简单,但我很难找到答案。我在一个类上使用 getDeclaredFields() ,对于某些字段,它返回 Set 而不是集合中的 Class。 for(Field f: clazz.
在我们的项目中,我们使用数据模型来存储从服务接收的数据。所以在特定情况下,当我们将数据插入数据库时,我们使用 objModelClass.getClass().getDeclaredFields(
我有一个 bean,我想通过反射访问它的属性。我收到字符串形式的属性名称。这些 bean 具有用于其私有(private)字段的 getter 方法。 我目前正在使用 getDeclaredField
我在使用这段代码时遇到了一些严重的问题,来自 svg-android : public class ParserHelper { private static final Field STRING_C
我已经解决这个问题大约2天了,但仍然无法解决。我有这个方法: public List findByKeyValue(String key, String value, Object t) {
我有以下 POJO 类: public class ModelClass { private String name; private String phone; privat
我是一名优秀的程序员,十分优秀!