指向性メモ::2005-10-10::J2SE5のGenericsとインスタンス生成に関するメモ

ページ情報
制作日
2005-10-10T23:53:48+09:00
最終更新日
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

Trackbacks

Trackback Ping URI

http://yudai.arielworks.com/memo/2005/10/10/235348.trackback

末尾に「8 + 2」の計算結果を繋げて下さい。例えば計算結果が「17」の場合、「235348.trackback17」です。これは機械的なトラックバックスパムを防止するための措置です。

Post a comment

Name (optional)
Email address or URI (optional)
Do the math below (required to filter comment spams)
8 + 2 + 9 =
Message (required)
Submit
連絡先、リンク、転載や複製などについては『サイト案内』をご覧ください。Powered by HIMMEL

I ♥ Validator