2

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 汇集吗?

谢谢你的任何建议

4

1 回答 1

1

由于抽象类无法创建对象,因此需要扩展 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);
    }
}
于 2017-03-21T03:35:49.147 回答