指向性メモ::2005-10-10

ページ情報
制作日
2005-10-10T23:53:48+09:00
最終更新日
2005-10-10T23:53:48+09:00

J2SE5のGenericsとインスタンス生成に関するメモ

Created:
2005-10-10T23:53:48+09:00

J2SE5でGenericsなクラスを作ろうとして若干はまった。何かの役に立つかもしれないのでメモしておこう。

public class GenericArray<T extends Comparable<? super T>> {

	private Comparable<? super T>[] records;

	public GenericArray(int max) {
		records = (Comparable<? super T>[]) new Comparable[max];
	}
}

言語仕様上、new T[]としてGenericsな型のインスタンスを生成することは出来ないので、コード上ではあらかじめ既知の型で生成し、欲しい型にキャストすることになる。このとき、Object[]からではなく、Comparable[]からキャストしないとエラーになるようだ。また、<? super T>もつけるべきらしい。

細かいことはSunによるチュートリアルを参照のこと

Comments
0
Trackbacks
0
PermaLink
http://yudai.arielworks.com/memo/2005/10/10/235348
連絡先、リンク、転載や複製などについては『サイト案内』をご覧ください。Powered by HIMMEL

I ♥ Validator