此在线文档很少。有谁知道如何向此KeyedPool添加新的K,V。 addObject有一个实体,但是如何将其称为k,v?

问题更改:
[我发现一个例子]
http://www.javacodegeeks.com/2013/02/pool-of-ssh-connections-using-apache-keyedobjectpool.html

假设我要实现一个键连接池,其中每个键都指向一个连接:

例如:KeyObjectPool项目

所以我的问题是我该如何添加新的连接?
是否有类似item.add(key,value)的东西?

最佳答案

答案是你做不到,因为你不应该这样做。 KeyedObjectPool的想法是,池将使用工厂为您创建对象(值)。

对于示例实现,请看一下GenericKeyedObjectPool:


JavaDoc
Source Code


Line 1058.开始的方法特别受关注


addObject(K key)
setFactory(KeyedPoolableObjectFactory factory)


编辑:应该注意,setFactory()方法已被弃用,因此您要避免使用它。

我认为您面临的基本问题是KeyedObjectPool旨在为您确定对象的创建(或值),但是要专门定义自己的对象(在这种情况下为连接配置)并将其作为值分配给键。

我认为您真正想要使用的是Map,但也许您对此无能为力,并且正在使用已经围绕KeyedObjectPool构建的框架。如果是这种情况,您在尝试做的事情时就面临着更深层的基础建筑设计缺陷。

在不了解您要尝试的内容的全貌的情况下,我只能建议您可能需要重新考虑您的设计。

关于java - 在Apache公共(public)池中将对象添加到KeyedObjectPool <K,V>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18702261/

10-10 10:40