Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何通过PicoContainer实例替换组件?_Java_Picocontainer - Fatal编程技术网

Java 如何通过PicoContainer实例替换组件?

Java 如何通过PicoContainer实例替换组件?,java,picocontainer,Java,Picocontainer,我在一个不控制PicoContainer启动的环境中工作,它是这样提供给我的: ApplicationManager.getApplication().getPicoContainer().getComponentInstanceOfType(Xyz.class); 我的问题是如何通过PicoContainer更换组件 我可以以某种方式获得对DefaultPicoContainer或MutablePicoContainer的引用吗 或者我可以将PicoContainer转换为MutablePi

我在一个不控制PicoContainer启动的环境中工作,它是这样提供给我的:

ApplicationManager.getApplication().getPicoContainer().getComponentInstanceOfType(Xyz.class);
我的问题是如何通过
PicoContainer
更换组件

我可以以某种方式获得对
DefaultPicoContainer
MutablePicoContainer
的引用吗

或者我可以将
PicoContainer
转换为
MutablePicoContainer

注:使用“旧”版本,picocontainer 1.3


谢谢你提供的提示。

我发现这就像转换到
可变PicoContainer
一样简单:

MutablePicoContainer picoContainer = (MutablePicoContainer) ApplicationManager.getApplication().getPicoContainer();
picoContainer.unregisterComponent("a.b.c");
picoContainer.registerComponentImplementation("a.b.c", MyComponent.class);
我猜默认的
PicoContainer
是作为一种“只读”容器提供的