3

java.lang.ref.StrongReferencejdk1.7にクラスがないのはなぜですか? ( JDK-6392701 を参照)

オブジェクトをさまざまな参照強度で格納できるようにする必要がある動作を実装しようとしています。そのため、最初に考えたのは、タイプのフィールドを使用Reference<T>し、必要な強度の参照を割り当てることでした。しかし、強力な参照用のクラスはなく、Reference手動で拡張するのは完全に間違った方向のようです。

別の方法は、2 つのフィールドを持つことです。1 つは aReferenceで、もう 1 つは目的の型であり、1 つのセットしか持たないがReference、値を強力に格納する a はコードをよりクリーンにします。

4

1 に答える 1

2

...そして参照を手動で拡張することは、完全に間違った方向のようです。

それよりも悪いです。APIによると:

参照オブジェクトはガベージ コレクターと密接に連携して実装されるため、このクラスを直接サブクラス化することはできません。

複数の異なる種類の参照 (strong を含む) を同じ構造に格納できるようにする場合は、おそらく独自の参照インターフェイスを作成し、2 つの実装を作成することをお勧めします。1 つは aReference<T>をラップし、もう 1 つは通常のオブジェクトをラップします。

于 2014-06-13T09:26:04.960 に答える