Hatena::ブログ(Diary)

Yamashiro0217の日記 RSSフィード

2009-09-28

Java でキャストする時

21:19 | Java でキャストする時を含むブックマーク

Java でキャストする時って記事ですが、こういう解決策で俺はいいと思う。

import java.util.ArrayList;
import java.util.List;

class Utils {
	@SuppressWarnings("unchecked")
	public static <T> T cast(Object obj) {
		return (T)obj;
	}
}

public class Test {
	public static void main(String[] args) {
		new Test().hoge();
	}
	public void hoge() {
		ArrayList list = new ArrayList();

		List<Integer> iList = Utils.cast(list);
	}
}

もともとは、「Utils.<List<Integer>>cast(list)」って書いてたけど、上の記述で行けるって※欄で教えてもらた。

skimuraskimura 2009/09/30 11:54 List<Integer> iList = Utils.cast(list);
とか

Yamashiro0217Yamashiro0217 2009/09/30 13:56 お。ほんとだ。これでいけるのかー。訂正しておきます。てかなんで行けるのかわからんw 勉強せねば…

t_yanot_yano 2009/09/30 18:27 メソッドでだけは型推論は行われるので、戻り値のTの部分に実際に割り当てられた型によってTはList<Integer>であると推論されたってことでは。