我正在尝试使用自定义逻辑加载单个类(即,我想用自定义版本替换我的库中的类的实现)。
我想创建自己的自定义类加载器,它代理默认类加载器。但是,我的默认类加载器: 似乎sun.misc.Launcher.AppClassLoader
是不可见的——这意味着我无法扩展它。
任何用于创建单个类加载器的解决方案都将不胜感激,该类加载器足够健壮以复制我现有类加载器的行为,同时在一个特定类中进行替换。
请注意,我尝试过使用
Thread current = Thread.currentThread();
current.setContextClassLoader(newOne);
但是,这似乎不起作用,即线程中加载的类并不总是触发我的自定义类加载器。
语境
我希望调用“new LibraryClass()”来使用此类的自定义实现——其中“new ...”调用位于不受我控制的 jar 文件中。