2011-06-07 38 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

相關問題