IAm*_*aja 1 java apache pooling apache-commons-pool
我已经将commons-pooling-1.6.jar添加到我的类路径并尝试实例化a StackObjectPool并且每次都失败了:
// Deprecated.
ObjectPool<T> oPool = new StackObjectPool<T>();
// Error: Cannot instantiate the type BasePoolableObjectFactory<T>.
PoolableObjectFactory<T> oFact = new BasePoolableObjectFactory<T>();
ObjectPool<T> oPool = new StackObjectPool<T>(oFact);
Run Code Online (Sandbox Code Playgroud)
这是一个弃用的API吗?如果是这样,Commons Pooling的一些开源替代品是什么?否则,我如何实例化StackObjectPool?
您需要编写自己的Factory,可能会扩展BasePoolableObjectFactory.有关更多信息,请参见此处:http://commons.apache.org/pool/examples.html
下面是一个PoolableObjectFactory实现,它创建了StringBuffers:
import org.apache.commons.pool.BasePoolableObjectFactory;
public class StringBufferFactory extends BasePoolableObjectFactory<StringBuffer> {
// for makeObject we'll simply return a new buffer
public StringBuffer makeObject() {
return new StringBuffer();
}
// when an object is returned to the pool,
// we'll clear it out
public void passivateObject(StringBuffer buf) {
buf.setLength(0);
}
// for all other methods, the no-op
// implementation in BasePoolableObjectFactory
// will suffice
}
Run Code Online (Sandbox Code Playgroud)
然后使用如下:
new StackObjectPool<StringBuffer>(new StringBufferFactory())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5975 次 |
| 最近记录: |