2012-02-16 10 views
0

私は入力としてJavaクラスのパスを入力し、出力ではそのクラスのメソッドのリストを取得する必要があります。続行しますか?誰でもme.plsを案内できますか?あなたは、JavaのリフレクションAPIを使用することができますjavaのクラスからメソッドのリストを取得するには?

+1

、あなたは最初の検索を行っている必要があります。 –

+1

あなたが記述しているのは、リファクタリング(動作を変更せずにパフォーマンス/可読性を向上させるためにコードを書き換えること)です。 EclipseのようなIDEは、あなたが開いているクラスのすべての属性とメソッドを表示するビューを持っています。 – shutefan

+1

これで何をしているのかを実証してください。どのような研究ですか? – Gray

答えて

1
Class personClass = Person.class; 

//Get the methods 
Method[] methods = personClass.getDeclaredMethods(); 

//Loop through the methods and print out their names 
for (Method method : methods) 
{ 
    System.out.println(method.getName()); 
} 
+0

ありがとうございました。 – avadha

+0

システムのローカルパスからjavaクラスのメソッドを読み込む必要がある場合はどうすればよいですか?それを直接読み取ることは可能ですか、それとも私はそのファイルをどのパッケージにもロードしなければならないでしょうか? – avadha

+0

どのクラスでも実行できます。それはパッケージとは関係ありません。 –

0

通過するあなたは、プログラムの部分であるリフレクションAPI(obj.getClass().getDeclaredMethods())を使用するか、コマンドラインユーティリティjavapを使用してそれを行うことができますあなたのJDKディストリビューションの

1

パス名を二重引用符で囲んで、javaクラスから取得することができます。javaクラスからメソッドの配列を取得できます。メソッドの配列に対しては、.getName()メソッドでメソッドの名前を付けることができます。リストに変換することができます。

Class class = Class.forName("com.nextenders.facadeimplementation.facade." 
        + className); 
    Method[] mymethods = class.getMethods(); 

同様の質問の多くは、すでに存在し、それが動作するかどうか私に知らせたりしませ

おかげで、 Punam

+0

システムのローカルパスからJavaクラスのメソッドを読み込む必要がある場合はどうすればよいですか? それを直接読み取ることは可能ですか、それとも、そのファイルをどのパッケージにも読み込んでそれを行う必要がありますか? – avadha

+0

@avadha 'System.getProperty(" user.dir ")'を使ってパスを取得することができます。パス区切りを変換する必要があり、システム内のどこにでもクラスを書くことができます。 – Punam

関連する問題