java - 如果 commons-pool2 可以用参数新建对象?

标签 java apache-commons-pool

PooledObjectFactory的create方法没有参数

https://commons.apache.org/proper/commons-pool/api-2.4.2/org/apache/commons/pool2/BasePooledObjectFactory.html#create--

如果我的 Foo 类定义是:

public class Foo {
    private String name;

    public Foo(String name) {
        super();
        this.name = name;
    }
}

这个 Foo 可以被 commons-pool 池化吗?

谢谢你的建议

最佳答案

因为抽象类不能创建对象, 您需要扩展 BasePooledObjectFactory 并实现其抽象方法。 通过这样做,您可以创建自己的类(例如,FooFactory),其中包含带参数的构造函数。 之后,您可以使用自己的类来实例化对象(即 Foo)。

示例代码:

public class FooFactory extends BasePooledObjectFactory<Foo> {
    private String name;
    public FooFactory(String name) {
        this.name = name;
    }
    @Override  
    public Foo create() throws Exception {
        return new Foo(name);
    }
}

关于java - 如果 commons-pool2 可以用参数新建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38894184/

相关文章:

Java:验证整数和范围

java - 如何一起使用 LibGDX、Gradle、Git 和 Eclipse?

java - 包名称和类 Activity 之间的部分是什么

spring - Redis 客户端 : create new connections when pool size gets exhausted

Spring数据Redis。如何知道事件、空闲连接数?

java - 尝试使用 ffplay 播放 h264 流时出错

java - 将Jsch放入连接池详解

java - 有效地池化 ByteBuffer 的实例

java - 是否有任何强大的 Clojure 持续集成选项?