是否可以在java中导入和使用两个具有相同名称和包的不同类?
例如,假设我有两个名为"com.foo.Bar"的类略有不同.我希望能够同时使用两者,但我有一个限制(因为愚蠢的反射废话)迫使我保持名称和包相同.
是否有一些java的功能允许我导入和隔离这些类中的每一个?
为了详细说明,我改变了我的avro模式,它们应该不会被更改(哎呀!)现在我想回去并将使用我的新模式无法读取的旧avro文件更改为文件我的新架构可以读取.Avro似乎强迫您使用特定的类和包名称来加载文件.
就在这里.您需要实现自己的类加载器并玩一些游戏才能在运行时访问它们.
我确信这是可能的,因为我遇到了一个非常难以调试的问题,其中有人在他们的产品中有一个奇怪的类加载器,它正在搞乱加载库并从库的2个不同版本提供相同文件的2个不同版本.
然而,这听起来像一个不可思议的坏主意.我会回去找一个解决问题的不同方法.从长远来看,这只会给你带来痛苦.哎呀,它可能已经是,因为你调查类加载器.
编辑:具体来说,你不能"导入"两者.但是您可以在运行时访问它们.
| 归档时间: |
|
| 查看次数: |
30773 次 |
| 最近记录: |