Javaの配列など
なぜかしらないが,いろいろ勉強する羽目になってしまった.
まず,Classオブジェクト.
オブジェクトoから oが属するクラスのクラスオブジェクトを得るには,
Class<?> cl = o.getClass();
とする.状況によっては,
Class<A> cl = o.getClass();
とか,
Class<? extends A> cl = o.getClass();
とか."A"という文字列から得るには,
Class<A> cl = Class.forName("A");
とする.A というリテラルから得るには,
Class<A> cl = A.class;
で良い.
次に配列.
初期化は,
A[] as = {new A(), new A(), new A()};
のようにできる.しかし,関数 foo(A[] as)の引数に
foo( {new A(), new A(), new A()} )
と渡すことはできない.
foo( new A[] {new A(), new A(), new A()} )
とすることはできる.
一方,可変長引数を定義することもできる.
public void foo(A... as) {
のように,「...」で表す.この場合,関数定義の方では,A[] as をもらったものと
考えてコードを書いて良いようだ.