3

我正在使用 Jakarta commons-pool-1.5.6.jar。我有 2 个相同类型对象的不同池(例如:汽车)。是一种防止对象返回池的方法吗?

这是一个示例:

//CarPool extends BaseObjectPool
CarPool carPoolA =  new CarPool(); 
CarPool carPoolB =  new CarPool();
carPoolB.returnObject(carPoolA.borrowObject());

我原以为池会管理其内容并防止将外部对象返回给它?

对此有什么想法吗?我必须自己管理吗?

4

2 回答 2

1

我不认为默认实现有任何事情可以做你所描述的事情(通过查看他们的 API)。但是您可以配置 GenericObjectPool 来实现您的目标,或者将逻辑写入您的 CarPool。所以我想最终我对你的问题的回答是肯定的,你必须自己管理。

于 2011-05-25T18:12:31.880 回答
0

上面的答案对于 1.x 池是正确的。这些池不维护对已检出对象的内部引用,因此它们无法在返回时测试成员资格,或防止同一对象的多次返回。

版本 2.x 池检查以确保返回对象是从它返回的池中借来的。返回未从池中借用的对象,或返回已返回的对象将导致 2.x 池中的 IllegalStateException。

于 2015-01-05T20:25:51.463 回答