Javaでは、クラスメソッドを呼び出すには2つの方法があります。静的メソッドの場合、クラス名を直接呼び出すことができ、非静的な方法では、クラスオブジェクト呼び出しを使用する必要があります。反射メカニズムは、比較的代替の呼び出し方法を提供します。これは、プログラミング中に決定することなく、必要に応じて呼び出される方法を指定できます。呼び出される方法は公開に限定されませんが、プライベートでもあります。反射メカニズムを使用して静的メソッドsin()を呼び出し、数学クラスの非静的メソッド等()を呼び出すプログラムを作成します。
アイデアは次のとおりです。Math.class.getDeclaredMethod( "sin"、double.type)を使用します。エントリパラメーターのタイプは2倍です。
コードは次のとおりです。
コードコピーは次のとおりです。
java.lang.reflt.methodをインポートします。
パブリッククラスのdongtai {
public static void main(string [] args){
試す {
System.out.println( "数学クラスの静的メソッドsin()を呼び出す");
メソッドsin = math.class.getDeclaredMethod( "sin"、double.type);
double sin1 =(double)sin.invoke(null、new Integer(1));
system.out.println( "1's sine値は:" + sin1);
system.out.println( "文字列クラスの非静的メソッド等()を呼び出す");
メソッドequals = string.class.getDeclaredMethod( "equals"、object.class);
boolean mrsoft =(boolean)equals.invoke(new String( "Tomorrow Technology")、 "Tomorrow Technology");
System.out.println( "String Tomorrowテクノロジー:" + Mrsoft);
} catch(例外e){
e.printstacktrace();
}
}
}
効果は写真に示されています: