我已经基于java.io.File
创建了一个自定义文件:
class CloudFile extends java.io.File {}
使用ByteBuddy是否有可能(在运行时)能够用新的java.io.File
替换对类CloudFile
的所有调用,并且化装
因此,例如,我创建了一个使用库的应用程序,该库广泛使用java.io.File
我想要的是该库对应用程序中的File
类的任何调用都将是对CloudFile
的调用
或者,否则,是一个更合理的解决方案,使用ByteBuddy创建将覆盖java.io.File
的类加载器-问题是对此采取正确的做法是什么?
我这样创建了一个基于java.io.File的自定义文件:类CloudFile扩展了java.io.File {} ByteBuddy是否有可能(在运行时)替换对java类的所有调用。 io ....
您可以使用Byte Buddy允许使用AgentBuilder
构建的Java代理来重新定义类。然后,您可以指示它重新定义您的所有库代码,其中您将用File
替换对CloudFile
的构造函数调用,我认为该函数对相关方法具有虚拟覆盖。