繁体   English   中英

我的 Java 应用程序中的两个类具有相同的限定名称

[英]Two classes in my java app have the same Qualified name

我有 maven 模块设置,一个类存在于两个具有相同名称和包结构的模块中。 com.expd.common.etms_functions_shared_service_types.v2.ExportConsol

这些类是在 maven 构建期间生成的。 一个来自 wsdl,另一个来自 avro 模式,wsdl 和 avro 模式都不受我们控制。 应用程序在运行时仅选取 1 个,排除预期的另一个。

有没有一种方法可以同时使用它们而不必重命名它们或更改包名称?

你当然可以。 您需要将这些类保存在单独的类加载器中,因此他们自然不会彼此了解。

然而,重命名(例如使用maven shade插件 )将是更简单和方便的解决方案。

如果您不分离类加载器,则基本行为是,如果刚刚加载了与 FQN 相同的类,则在类发现期间的第二次出现将被忽略。 所以我建议在加载类时保留一个版本的类,部署一个包含该类的 jar 以避免混淆。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM