15

パッケージ内のすべてのクラス名を出力し、各パッケージ内の対応する属性とそのデータ型も出力したいと考えています。

1 つのコードで、クラス名を文字列の形式で取得できます。別のコードでは、次を使用して属性とそのデータ型を取得できますClassname.class.getAttribute();

ただし、2つのコードをマージしたいと思います。最初のコードではクラス名を string の形式で取得したためClassname.class.getAttribute()、ここClassnameでは type になるため使用できませんString

したがって、「クラス名」をString型から型に変換するメソッドが必要ですClass

試してみClass.forName()ましたが、うまくいきませんでした。

4

3 に答える 3

25
Class<?> classType = Class.forName(className);

また、表示されたエラー メッセージを共有してclassNameください。com.package.class

于 2012-09-05T17:42:13.417 に答える
1

クラスの完全修飾名が利用可能な場合、静的メソッド Class.forName() を使用して対応するクラスを取得できます。

例えば:

Class c = Class.forName("com.duke.MyLocaleServiceProvider"); 

注:関数に指定するパラメーターが、com.package.class のような完全修飾クラス名であることを確認してください。

参考までにこちらをご覧ください。

編集:

メソッドを使用することもできますloadClass()

例えば:

 ClassLoader cl;
 Class c = cl.loadClass(name);

クラス参照を解決するために Java 仮想マシンによって呼び出されます。

構文:

public Class<?> loadClass(String name)
                   throws ClassNotFoundException

ClassLoaderの詳細はこちら

ClassLoader の実装を次に示します。

于 2012-09-05T18:01:55.943 に答える