问题陈述: 在Bundle A中找到一个资源(比如myClass)并加载它,如果找不到的话 在Bundle B中找到资源并以编程方式加载它,而控件在Bundle C中。 我引用了A和B bundle的ClassLoaders。
我所知道的是:对于每个OSGi包,父classLoader是Bundle 0的类加载器。和系统bla bla
如果我将B组的CL的父级更改为 - >>束B的CL和来自束B的CL的getClass?
是否会采用最佳做法?
限制:不要使用import,export,require语句进行解决。
由于
答案 0 :(得分:1)
似乎无法完成。 Java不提供API来设置父类加载器。抱歉问这个问题。
答案 1 :(得分:0)
OSGi中的最佳实践是不更改类加载器。 OSGi中的系统经过深思熟虑,如果你改变它,你将遇到各种各样的麻烦。理想情况下,您不应该手动加载类。如果需要类或资源的实例,请将其加载到包含它的包中。如果您在另一个包中需要它,最佳做法是使用实例或带有实例的工厂发布服务。