0

Netty AttributeKey または UniqueName インスタンスを「未定義」にすることは可能ですか?

私は Netty 4.0.8 を OSGi コンテナーにデプロイしており、別のバンドルにstatic final AttributeKey.

問題は、そのバンドルをリロードまたは再デプロイすると、そのクラスが再度ロードされる (そして、静的初期化が再び発生する) ことです。そのため、AttributeKeyコンストラクターの呼び出しは、それを識別するために使用される文字列が使用中の名前のマップに既に存在するため、異常終了します。バンドルが最後に起動した時刻。

コンストラクターへの引数の末尾に乱数を追加すると衝突が回避されますが、これによりクラスのマップStringに名前が蓄積されます。AttributeKeyUniqueName

私の質問は、AttributeKey動的に再ロードされる可能性のあるクラスで s を定義するためのベスト プラクティスについてです。具体的には:それは何ですか?AttributeKeyインスタンスの独自のプールを管理する必要がありますか?

参考までに、醜い乱数ハックは次のようになります。

private static final AttributeKey<ChannelGroup> PAGE_GROUP = 
        new AttributeKey<>("MyOtherwiseUniqueString" + new Random().nextInt());
4

1 に答える 1