2

このオンラインに関するドキュメントはほとんどありません。この KeyedPool に新しい K、V を追加する方法を知っている人はいますか。addObject のエンティティはありますが、k、v とはどのように参照されるのでしょうか。

質問への変更: [私が見つけた一例] http://www.javacodegeeks.com/2013/02/pool-of-ssh-connections-using-apache-keyedobjectpool.html

すべてのキーが 1 つの接続を参照する接続のキー付きプールを実装するとします。

例: KeyObjectPool アイテム

それで私の質問は、これに新しい接続を追加するにはどうすればよいですか? item.add(key, value) のようなものはありますか?

4

3 に答える 3

0

コンストラクターで KeyedPoolableObjectFactory を GenericKeyedObjectPool に渡します。KeyedPoolableObjectFactory にはメソッドがあります

public Object makeObject(Object key) throws Exception {

キーに基づいてプールの新しい値を作成します。

于 2015-04-22T11:42:58.943 に答える
0

この場合、K と V はジェネリックです。
これは、それらが何でもあり得ることを意味します。

はい、そうですが、KまたはVであることをどのように知ることができますか?
単純!そのフィールドがどのタイプであるべきかをクラスに伝えなければならないのはあなたです。

例えば。

KeyedObjectPool<String,String> kop = new KeyedObjectPool<String,String>();

文字列であるキーと文字列でもある値を扱う新しいオブジェクトを作成しました。

これを試してみると:

kop.addObject("hello");

これを試してみるとうまくいきます:

kop.addObject(new POJO());

失敗します。

ものすごく単純。

(ps POJO は Plain Old Java オブジェクトです。たとえば、作成した任意のクラスです)

于 2013-09-09T16:12:36.513 に答える