category: Java
DATE : 2006/04/20 (Thu)
DATE : 2006/04/20 (Thu)
Java SE 5 から、総称型(Generics)が導入されました。
総称型を使うことで、 java.util.List などの要素の型をコンパイル時に保証できるようになりました。
しかし、 Java SE 5 からということは、それ以前の Java では総称型が使えなかったわけです。
そのため、Java SE 5 以前から存在するライブラリや、それ以前でもサポートするライブラリでは、総称型が使用されていません。
これは少々困ったことになります。Java SE 5 を使っている身としては、総称型を使ったコードと使っていないコードとはあまり混ぜたくありません。
しかし、簡単な方法で総称型に変換することができます。――というよりも、強引に総称型として扱うことができます。
具体的には、以下の通りです。ここで、 createList メソッドは、総称型を使用していない java.util.List を返すメソッドです。中身は、java.lang.String とします。
List<String> list = createList();
正直、身も蓋もありません orz
ただし、このままではコンパイラが『無検査変換です』と警告を出してきます。
そこで、次の注釈を付け加えます。
@SuppressWarnings("unchecked")
List<String> list = createList();
この注釈をつけると、無検査変換に関する警告が出なくなります。
ちなみに、このようなこともできます。
for (String s : (List<String>) createList()) {
// 処理
}
この場合は、この処理を実行するメソッドに上の注釈を付けます。
参考文献
PR
●この記事にコメントする
忍者ブログ [PR]