更新 - 原始问题不含糊,导致抽象讨论。
澄清正在更新中。
我有immutable.HashMap[Manifest[_], _]
由类加载器A中的第三方库生成。
Manifest[MyClassX]
传递给类加载器边界时,包含共享类的键hashCode
将保留其HashMap
。Manifest[MyClassY]
将变得无法使用。 Manifest[MyClassY]
内部类加载器 A 和Manifest[MyClassY]
内部类加载器 B 具有不同的hashCode
值。
我想知道Scala反射库是否能够从类加载器 A B 中重新创建Manifest[_]
?
FYI。之后,我将比较原始清单和新清单。
If hashCode is the same then we have `Manifest[MyClass]` with `MyClass` from shared origin. else we have Manifest[MyClass] with MyClass from different origins.
我需要通过这个约束来检测和分离HashMap的键。
原始
我有OSGi环境,我有清单 m ,哈希码为 123 ,包含 A 。 我想检查捆绑 B 中可用类的清单“是否相同”。
如果我将清单传递给捆绑 B ,那么:
有没有办法通过反射重新创建清单?我不想处理所有可能的清单字段,要求每个字段Class.forName(...)
,然后将hashCode
与来源进行比较。
是否还有其他可能达到同一目标?
我必须通过外部库来体现。