问题描述
ByteBuddy 有 net.bytebuddy.jar.asm.commons.Remapper
允许例如运行时着色通过使用类加载器在加载期间转换和重新映射类。但是我在 ByteBuddy Advice
类中重新映射类型引用时遇到问题。我认为这是因为 BB 实际上并没有将它们作为类加载,而只是使用 getResourceAsstream
或类似的东西来获取 Advice
类文件的字节数组。
那么,问题是:我如何为 Remapper
类提供 Advice
?
解决方法
您考虑过定位建议类吗?您可以提供类型为 ClassFileLocator
的可选参数,该参数负责为给定类查找类文件。您需要查找具有不同名称的 .class 文件或编写一个委托程序来调整类名,然后再传递给不同的类文件定位器。