【初心者】Java質問・相談スレッド84【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0787デフォルトの名無しさん
2006/05/06(土) 00:12:05public class Foo<T>{
public void baz(){
Foo f;
Foo[] fs;
f = new Foo();
fs = new Foo[2];
}
}
これはコンパイル通るのに、
public class Foo<T>{
public class Bar{
public Bar(){}
}
public void baz(){
Bar b;
Bar[] bs;
b = new Bar();
bs = new Bar[2];
}
}
これだと 「汎用配列を作成します。」って言われてコンパイル時エラーに
なるのが納得いかないんだけど。
Foo<T>.Bar型の配列が「汎用配列」として弾かれているのだとしたら
前者のFoo<T>型の配列がコンパイル通るのは何故。
また、「b = new Bar(); 」ではエラーが出ずに
「bs = new Bar[2]; 」の方だけがエラーになってるのは不条理な気がするんだが。
■ このスレッドは過去ログ倉庫に格納されています