[Java] ジェネリクスでnew T()できない><

| コメント(0) | トラックバック(0)
ジェネリクス対応のクラスやメソッドを作る時のためのメモ


・クラスで使う


・メソッドで使う




・クラス名を指定して、ArrayListで返す。


ここで、リストの要素として、T型のオブジェクトをnewしたい時に、
huga.add(nwe T());とすると、コンパイルエラー。


なので、
type.newInstance();
で作る!!


ただ、こいつは、
InstantiationExceptionとIllegalAccessExceptionを投げつけるので、
try ~ catchが必要。

毎回try ~ catchを書くのは面倒なので外だし




で、

とかする。

エラー出ても、とりあえず全力でスルーするけど、
そのあとにぬるぽになるから注意www


あと、<? extends Hoge>とかやると、Hogeとそのサブクラスはおk的なことができたり、
<? extends Object>や<?>なんかだと何でもありだったり、

あと、
(T[]) Array.newInstance(type, DEFAULT_LENGTH);
とかでTの配列がnewできたりするらしい。



メモ終わり。



<参考>
【コラム】ライトニングJava (24) Generic Java(5) - Genericを使ってAPIを作成する その2
http://journal.mycom.co.jp/column/java/024/index.html

【コラム】ライトニングJava (25) Generic Java(6) - Genericを使ってAPIを作成する その3
http://journal.mycom.co.jp/column/java/025/index.html

Java総称型メモ(Hishidama's Java Generics Memo)
http://www.ne.jp/asahi/hishidama/home/tech/java/generics.html

Javaの理論と実践: Generics、了解!
http://www.ibm.com/developerworks/jp/java/library/j-jtp01255/

404 shin1のつぶわき ないわー Not Found: Genericsにてnew T()できないのがキモイ
http://shin1o.blogspot.com/2008/02/genericsnew-t.html



P.S.
早く就活終わってほしい・・・
もっとプログラム書きたいよー涙(仕事以外で)

トラックバック(0)

トラックバックURL: http://blog.isocchi.com/MovableType/mt-tb.cgi/342

コメントする

このブログ記事について

このページは、isocchiが2009年2月26日 08:27に書いたブログ記事です。

ひとつ前のブログ記事は「[etc] "ブログに書くまでが勉強会"が継承しているもの」です。

次のブログ記事は「[Flex][AIR] いつの間にかFlex3.3になってる!!!」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

Powered by Movable Type 5.0