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