忍者ブログ
[34] [33] [32] [31] [30] [29] [28] [27] [26] [25] [24]

DATE : 2017/04/29 (Sat)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


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
●この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
●この記事へのトラックバック
この記事にトラックバックする:
忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
03 2017/04 05
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)
ブログ内検索
最近の状況
リンク
カレンダー
03 2017/04 05
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
T/O
(11/05)