ALGOBIT

2010/01/23

Unchecked cast

Filed under: 離散的な気まぐれ — タグ: , — Kohyama @ 23:50

Java です.

List<Hoge> lh;
...
lh = (List<Hoge>)anInstance.aMethod();
for (Hoge h: lh) {

anInstance.aMethod() は, 返り値の型は Object だが, ここでは, List<Hoge> を返すと分かっているとする.
コンパイル時に “lh = ” の行で

Type safety: Unchecked cast from Object to List<Hoge>

の warning が出る.

@SuppressWarnings("unchecked")

で warning を出さないことはできるが, なんとなく気にいらないので,

List<?> lh;
...
lh = (List<?>)<em>anInstance.aMethod()</em>;
for (Object o: lh) {
h = (Hoge)o;

とする.
これもスッキリしないけど.
なんらかの方法でスッキリ済みの人には, 何を今更と怒られるかもしれませんが.

Copyright © 2010 Yoshinori Kohyama All Rights Reserved.