Tag: java bytecode asm

可以使用ASM将方法添加到现有的Java类中?

我想添加一个方法到我没有控制的现有类,例如在Java8的Stream类中有一个方法toList()。 问题是这是否可以使用ASM来完成。 我猜是这样。 我更具体的问题是,我是否可以创建类似于包含扩展方法的jar(就像类Stream)。 然后我可以将jar添加到我的项目中,并且toList()方法在Java8 Stream类中变得可见。 从我所了解的扩展方法只能在运行时编译,或者当我有一个可以做到这一点的运行时(如Groovy,Kotlin,Scala)。 我知道有龙目岛项目,但它只有一个支持相应功能的eclipse插件。 IntelliJ的插件不支持这个特定的功能。