私はJavaリフレクションの基礎とクラスのメソッドに関する情報を観察しています。私はgetMethod()関数で記述されているような仕様にマッチするメソッドを取得する必要があります。しかし、私はこれを行うとNoSuchMethodExceptionが発生し、私の実装が間違っている理由を教えてくれることを期待していました。Java Reflection、getMethod()
static void methodInfo2(String className) throws ClassNotFoundException,
NoSuchMethodException{
Class cls = null;
try{
cls = Class.forName(className);
} catch(ClassNotFoundException e){
e.printStackTrace();
}
System.out.println("Cls: "+cls);
Method method1 = cls.getMethod("test", null);
System.out.println("method1: "+method1);
}
EDIT1:私は "のCl:" プリントアウトした場合+ CLSを、出力は ":クラスa8.myclass2のCl" です。なぜそれがクラスの部分を追加するのですか? (a8は正しいので、心配しないでください)/ EDIT1
これは私のメイン関数からクラスを読み込むために使用する関数で、getMethod()にパラメータ "test" nullは「test」はメソッドの名前で、nullはメソッドにパラメータがないことを意味します。私が読んでいるクラスは、ここにあるmyclass2と呼ばれます。
package a8;
public class myclass2 {
void test(){
//"takes no parameters"
//"returns bool"
//"name starts with test"
//return true;
}
}
ご覧のとおり、このメソッドはクラス内に存在します。あなたが私の間違いを指摘できるなら、本当に感謝します。
それは、あなたは私にそれを打つ。 +1 getMethod()のJavaDocから: "このClassオブジェクトが表すクラスまたはインタフェースの指定された** public **メンバメソッドを反映するMethodオブジェクトを返します。 –
ありがとう:)それは働いた – Nibirue