17得票5回答
动态创建简单的POJO类(字节码)

我有以下情况... 我正在编写一些工具,运行用户输入的查询并返回结果到数据库。最简单的方法是将结果返回为:List<String[]>,但我需要更进一步。 我需要在运行时创建一些POJO(或DTO),并为其创建字段、设置器和获取器,并用返回的数据填充它,然后将它与生成的.cla...

12得票4回答
字节码的编译后注释删除

我们正在使用包含JAXB注解的bean库,但我们使用这些类的方式不依赖于JAXB。换句话说,我们不需要JAXB,并且不依赖于这些注解。 然而,由于这些注解存在,它们会被其他处理注解的类引用。这要求我们将JAXB打包到应用程序中,但这是不允许的,因为JAXB在javax.* 包中(Androi...

12得票2回答
更改类加载器

我正在尝试在运行时切换类加载器:public class Test { public static void main(String[] args) throws Exception { final InjectingClassLoader classLoader = ...

12得票2回答
使用Instrumentation给Java类添加代码:ASM还是BCEL?

我正在编写一个游戏引擎/库,在其中我有一个事件分发器类,通过调用“注册”事件处理程序类的监听器方法来分派事件。可以通过调用适当的调度程序方法向事件分派器注册事件处理程序/监听器。 显然,这会导致一些样板代码来注册每个事件处理程序(我的引擎的其他方面也有类似的样板代码),因此我想知道-如何使用...

11得票2回答
当控制行号时,使用哪个字节码库?

我需要从现有的类中生成新的类(通过生成Java字节码)。我将分析类的方法的主体(表达式)。这些表达式将确定我将生成的代码。 对我来说,设置新类的源文件(与基本的Java文件相同)以及控制行号很重要(当抛出异常时,堆栈跟踪应包含基本Java文件的行号)。 例如: 我有文件BaseClass....