当前位置: 首页 > 知识库问答 >
问题:

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

申屠鹏
2023-03-14

PooledObjectFactory的创建方法没有参数

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可以通过公共池汇集吗?

谢谢你的任何建议

共有1个答案

韦叶秋
2023-03-14

因为对象不能由抽象类创建,所以需要扩展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);
    }
}
 类似资料:
  • 我是Spring的新手。我用的是BasicDataSource 我使用了hibernate-commons-annotations-3.0.0。ga.jar,commons-pool2-2.0。jar,commons-dbcp2-2.1。jar,mysql-connector-java-5.1.4。jar,hibernate-core-3.6.9。最终的罐子 我得到了这个错误:

  • 问题内容: 我有一个带几个参数的Python函数。在某些情况下,可以忽略其中一些参数。 这些参数通过是字符串,每个都有不同的含义。我可以选择要以任何组合形式传递的可选参数,这一点很重要。例如,或,,或,或所有它们(这些是我的选择)。 如果我可以重载该函数,那就太好了-但我读到Python不支持重载。我试图在列表中插入一些必需的int参数-并收到参数不匹配错误。 现在,我正在发送空字符串来代替前几个

  • 问题内容: 我想创建一个可以与参数一起使用的Python装饰器: 或不使用它们(例如,默认情况下将输出重定向到stderr): 那有可能吗? 请注意,我并不是在寻找重定向输出问题的其他解决方案,这只是我想要实现的语法的一个示例。 问题答案: 我知道这个问题很旧,但是有些评论是新的,尽管所有可行的解决方案本质上都是相同的,但大多数解决方案都不是很干净也不易于阅读。 就像thobe的回答所说,处理这两

  • 问题内容: 我正在尝试创建一个以验证以下日期时间: 我已经尝试使用以下日期时间格式化程序来验证上述日期: 它适用于所有上述日期罚款,但根据我的要求就应该失败的。 注意:我知道使用以下格式化程序可以达到预期的结果: 但是我想知道,通过改变我们可以达到预期的结果吗? 为了解析日期,我使用以下方法: 问题答案: 您必须创建一个可选部分(使用和方法),该部分包含小数点后跟1至6位数字: 这将从解析,并引发

  • 问题内容: 我有这样的看法: 我想使其更通用,这意味着将2更改为变量。我尝试了这个: 但是MySQL不允许这样做。 我发现了一个丑陋的解决方法: 然后视图是: 但是它看起来确实很糟糕,用法也很糟糕-我必须在每次使用视图之前设置@MyVariable。 有没有一种解决方案,我可以这样使用: 具体情况如下:我有一个表,用于存储有关拒绝请求的信息: 多重性是在同一秒内记录的多个相同请求。我想显示一个拒绝

  • 问题内容: 我一直认为无需调用构造函数即可创建对象。 但是,在 明智地 阅读《有效的Java 项目11:覆盖克隆》时 ,我发现了一条声明,指出 “没有调用构造函数”的规定太强了。行为良好的克隆方法可以调用构造函数来创建正在构建的克隆内部的对象。如果该类是最终的,则clone甚至可以返回由构造函数创建的对象。 有人可以向我解释一下吗? 问题答案: 我一直以为clone()会创建一个对象而不调用构造函