我正在处理一个大型(很多类)java 项目,我有它的源代码,但大多数类都是通过 ClassLoaders 动态创建或下载的。 无论如何,我希望能够“覆盖”java.net.URL 类,这样我就可以追踪打开 url 的调用。我不能使用嗅探器,因为内容是 SSL 加密的。 我试图扩展 java.net.URL 但它没有用,因为它是最后一个类。 我还打开了 java.net.URL 的源代码并对其进行了修改并成功构建了它,现在如何使默认的 java 类加载器加载我修改后的 java.net.URL 副本而不是原始副本? 欢迎任何建议!提前致谢。
最佳答案
一种选择是使用 AspectJ 并将您的扩展代码编织到 URL 类中而不是扩展它。这样您就不必修改任何原始资源,您仍然可以“扩展” final类。缺点当然是,您向项目添加了另一个依赖项。
如果您还没有使用过 AOP,您可以在我的博客上找到对 AOP 的简短介绍:http://whatiscomingtomyhead.wordpress.com/2010/02/06/aspect-oriented-programming-an-introduction/
关于java - 如何在 Java 程序中通过 java.net.URL 类监控打开的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2208747/