Collections.CheckedCollection(ICollection, Class) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したコレクションの動的に型セーフ ビューを返します。
[Android.Runtime.Register("checkedCollection", "(Ljava/util/Collection;Ljava/lang/Class;)Ljava/util/Collection;", "")]
[Java.Interop.JavaTypeParameters(new System.String[] { "E" })]
public static System.Collections.ICollection CheckedCollection(System.Collections.ICollection c, Java.Lang.Class type);
[<Android.Runtime.Register("checkedCollection", "(Ljava/util/Collection;Ljava/lang/Class;)Ljava/util/Collection;", "")>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "E" })>]
static member CheckedCollection : System.Collections.ICollection * Java.Lang.Class -> System.Collections.ICollection
パラメーター
動的に型セーフ ビューが返されるコレクション
- type
- Class
保持が許可 c 要素の型
返品
指定したコレクションの動的に型セーフ ビュー
- 属性
注釈
指定したコレクションの動的に型セーフ ビューを返します。 間違った型の要素を挿入しようとすると、すぐに ClassCastExceptionが発生します。 動的に型指定されたビューが生成される前にコレクションに誤って型指定された要素が含まれていること、およびそれ以降のすべてのコレクションへのアクセスがビューを介して行われると仮定すると、コレクションに誤って型指定 された 要素を含めることはできません。
言語のジェネリック メカニズムはコンパイル時 (静的) 型チェックを提供しますが、このメカニズムをオフにしたキャストで無効にすることはできます。 通常、これは問題ではありません。このようなチェックされていないすべての操作に対してコンパイラが警告を発行します。 ただし、静的な型チェックだけでは不十分な場合があります。 たとえば、コレクションがサード パーティのライブラリに渡され、ライブラリ コードが間違った型の要素を挿入してコレクションを破損させないようにすることが不可欠であるとします。
動的に型セーフ ビューを使用するもう 1 つの用途は、デバッグです。 プログラムが ClassCastExceptionで失敗し、正しく型指定されていない要素がパラメーター化されたコレクションに配置されたことを示しているとします。 残念ながら、この例外は、誤った要素が挿入された後にいつでも発生する可能性があるため、通常、問題の実際の原因に関する情報はほとんどまたはまったく提供されません。 問題が再現可能な場合は、プログラムを一時的に変更してコレクションを動的にタイプセーフ ビューでラップすることで、ソースをすばやく特定できます。 たとえば、次の宣言です。
{@code
Collection<String> c = new HashSet<>();
}
は、次の方法で一時的に置き換えることができます。
{@code
Collection<String> c = Collections.checkedCollection(
new HashSet<>(), String.class);
}
プログラムを再度実行すると、誤って型指定された要素がコレクションに挿入された時点で失敗し、問題の原因が明確に識別されます。 問題が修正されると、変更された宣言が元の宣言に戻される可能性があります。
返されるコレクションは hashCode を渡 せず 、操作をバッキング コレクションに渡しますが、 Objectの equals メソッドと hashCode メソッドに依存します。 これは、バッキング コレクションがセットまたはリストである場合に、これらの操作のコントラクトを保持するために必要です。
指定したコレクションがシリアル化可能な場合、返されるコレクションはシリアル化可能になります。
nullは任意の参照型の値と見なされるため、返されるコレクションでは、バッキング コレクションが実行されるたびに null 要素を挿入できます。
1\.5 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。