2011-06-07 21 views
4

使用apache common pool时,它可以为我提供Java对象池的良好实现。但是他们的KeyedPoolableObjectFactory接口不是类型安全的。 Java中是否有任何对象池库可以为我们创建类型安全对象池提供泛型接口?是否有任何泛型版本的Apache公共对象池?

+0

确定你是否真的需要一个对象池?你将在哪个上下文中使用它? – helpermethod 2011-06-07 09:51:30

+0

保存AMQ的客户端信息列表和主题监听器列表。希望客户在闲置一段时间后可以将其驱逐出境。 – 2011-06-07 10:10:23

回答

2

据我所知,并非如此,但在commons-pool实现中创建一个类型化的包装器很容易,因此您的调用代码可以使用泛型。

+0

是不是那么容易。例如,以下是不可能的。 公共类X 实现GenericKeyedObjectPool { @Override 公共无效activateObject(最终对象为arg0,最终对象ARG1)抛出异常{ 如果(arg0中的instanceof T) .... =>错误 } – 2011-06-07 10:16:52

+0

或者我只能用这个,但是它不太适合创建所需的对象。 public class X implements KeyedPoolableObjectFactory { private class type; public static X create(类型){ return new X (type); } – 2011-06-07 10:22:31

+1

@raymond为什么artbristol意味着你可以创建一个拥有'KeyedObjectPool'实例的类。然后你可以自由定义你自己的API,将调用委托给引用的'KeyedObjectPool'。有关如何实现此目的的更多详细信息,请参阅http://de.wikipedia.org/wiki/Adapter_%28Entwurfsmuster%29。 – helpermethod 2011-06-07 11:33:43

相关问题