効果的な Java 2nd Editionでは、新しいコードで生の型を使用すべきではないと述べています。また、チェックされていないキャストの警告をすべて排除し、そのような警告を抑制することを選択した場合はその安全性を証明して文書化する必要もあります。
ただし、未加工の型と未チェックのキャストをタイプ セーフな方法で組み合わせる特定の使用法を繰り返し見てきました。最も典型的な形式では、次のようになります。
static final
生の型で宣言され、不変オブジェクトを参照するフィールド- チェックされていないキャストを使用して、このフィールドのパラメーター化された
static
バージョンを返すジェネリック メソッド
この「パターン」の最も有名な例は、次の場所にありjava.util.Collections
ます。
List EMPTY_LIST
と<T> List<T> emptyList()
Set EMPTY_SET
と<T> Set<T> emptySet()
Map EMPTY_MAP
と<K,V> Map<K,V> emptyMap()
質問は次のとおりです。
- このイディオムは何と呼ばれていますか?
- このイディオムが以前に議論された信頼できるソースはどれですか?
こちらもご覧ください
- 有効な Java 2nd Edition
- 項目 23: 新しいコードで生の型を使用しない
- 項目 24: 未確認の警告を削除する