0

Java のリフレクション メソッド getReturnType() の返された型を使用して、その型のオブジェクトを作成できるかどうか疑問に思っています。

String を返すメソッドがありますが、実行時にそれがわからないことを想定しているため、 を呼び出してgetReturnType()、メソッドが返すオブジェクトのタイプを決定します。

Method myMethod = Book.class.getDeclaredMethod("printName");
Type myType = myMethod.getReturnType();

myTypeそれを使用して新しいオブジェクトを作成できるかどうか、またはどうすればそれを行うことができるか疑問に思っています。試しmytype something = new mytype();ましたが違います。

4

2 に答える 2

5

まず、 はそのMethod#getReturnType()ように宣言されています

 Class<?> java.lang.reflect.Method.getReturnType()

そしてjavadocはそれを述べています

Classこのオブジェクトが表すメソッドの正式な戻り値の型を表すオブジェクトを返しMethodます。

Classクラスは、newInstance()引数なしのコンストラクターを使用してインスタンスを作成できるメソッドを提供します。または、メソッドを使用してインスタンスClass#getDeclaredConstructors()のリストを取得し、ConstructorそれらのnewInstance(Object...)メソッドを使用して、表されるクラスのインスタンスを作成できます。

コンパイル時には型が不明であるため、その型の変数を作成することはできません。

于 2013-10-30T17:33:29.480 に答える